/*******************************************************************************
* Copyright (c) 2006, 2015 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*     IBM Corporation - initial API and implementation
*********************************************************************************/

// This file was generated by LPG

package org.eclipse.cdt.internal.core.dom.lrparser.cpp;

public class CPPNoCastExpressionParserprs implements lpg.lpgjavaruntime.ParseTable, CPPNoCastExpressionParsersym {

    public interface IsKeyword {
        public final static byte isKeyword[] = {0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0
        };
    };
    public final static byte isKeyword[] = IsKeyword.isKeyword;
    public final boolean isKeyword(int index) { return isKeyword[index] != 0; }

    public interface BaseCheck {
        public final static short baseCheck[] = {0,
            0,0,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,3,1,1,1,1,1,1,
            1,1,2,2,1,1,0,1,0,4,
            2,3,2,3,2,2,1,0,1,1,
            4,4,4,8,8,3,3,4,4,3,
            3,2,2,7,7,7,7,4,4,5,
            6,3,2,2,1,1,1,2,2,2,
            2,2,2,2,2,2,4,7,9,3,
            0,1,2,2,1,2,3,4,1,0,
            3,1,0,3,5,1,1,3,3,1,
            3,3,3,1,3,3,1,3,3,1,
            3,3,3,3,1,3,3,1,3,1,
            3,1,3,1,3,1,3,1,5,1,
            3,5,3,3,1,3,3,1,3,1,
            3,1,3,1,3,1,3,1,5,1,
            1,3,3,3,3,3,3,3,3,3,
            3,3,1,2,1,1,3,3,3,3,
            3,3,3,3,3,3,3,1,2,1,
            3,1,0,1,0,1,1,0,1,1,
            1,1,1,1,1,1,1,3,4,3,
            2,1,4,2,1,2,5,7,5,1,
            4,1,0,5,7,2,8,1,1,2,
            2,3,2,3,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            2,1,0,4,4,2,2,2,2,2,
            1,0,1,1,1,1,1,1,2,1,
            2,2,2,1,1,2,2,1,2,2,
            1,2,2,1,2,2,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,3,4,
            4,5,2,5,6,5,0,1,0,7,
            8,0,1,3,1,0,1,3,1,7,
            6,0,7,6,1,0,6,5,6,4,
            1,3,1,0,1,1,2,1,1,3,
            1,3,1,1,1,1,3,9,2,2,
            3,2,5,3,7,0,1,2,2,1,
            0,1,1,1,3,1,2,1,1,2,
            3,1,1,1,3,2,1,2,2,9,
            8,2,1,3,1,3,1,0,1,0,
            2,1,1,3,1,3,2,1,5,8,
            1,2,3,1,1,7,6,3,0,0,
            1,3,1,1,5,6,6,7,7,0,
            0,1,0,1,1,1,2,4,2,2,
            1,5,1,1,1,1,1,1,1,2,
            1,0,1,3,1,1,2,3,2,1,
            2,2,1,0,1,3,3,5,5,4,
            1,1,1,1,0,1,5,2,2,1,
            2,2,1,0,1,3,4,3,1,1,
            5,2,1,1,3,3,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,2,2,7,1,0,1,3,1,
            1,2,4,2,4,7,9,5,1,3,
            1,0,1,1,3,2,3,2,2,1,
            0,1,1,4,5,2,1,2,2,2,
            2,2,2,2,1,1,2,1,1,2,
            4,4,2,1,2,5,5,3,3,1,
            4,3,1,0,1,3,1,1,-107,0,
            0,0,0,-2,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-4,-309,0,0,-207,
            0,0,0,0,0,0,0,-5,0,0,
            -6,-286,0,0,0,-58,0,0,0,0,
            -165,-7,-428,0,0,0,0,0,0,0,
            0,0,0,0,0,-198,0,0,0,0,
            -51,-18,0,0,0,0,-114,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-8,0,0,0,-106,-506,0,
            0,0,0,0,0,0,0,-53,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-460,0,0,-68,0,0,0,0,
            -9,0,0,0,0,0,0,0,-126,0,
            0,0,0,0,-176,0,0,0,-115,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-272,0,
            0,0,0,0,0,-522,0,-561,-264,0,
            0,0,0,0,-136,0,0,0,0,0,
            0,0,0,0,0,0,0,-311,0,0,
            0,0,0,0,0,0,-130,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-265,0,0,0,-69,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-472,0,0,0,0,0,
            0,-415,0,0,0,0,0,0,0,0,
            0,0,0,-596,0,0,0,0,-117,0,
            0,0,0,0,0,0,0,0,0,-192,
            0,0,0,0,-196,0,0,0,-259,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-134,0,0,-62,0,
            0,0,0,0,0,-325,0,0,0,0,
            0,-501,0,0,-11,0,0,0,0,0,
            0,-444,0,0,-119,0,0,0,0,0,
            0,0,0,0,-571,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-275,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-177,0,0,
            0,-16,0,0,0,0,-61,0,0,0,
            0,0,-266,0,0,0,0,-595,0,0,
            0,0,-54,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-10,-197,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -323,0,0,0,0,-89,0,0,0,0,
            -367,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-199,0,0,0,0,0,0,0,
            0,0,0,-502,0,0,0,0,-12,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -112,-13,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-170,0,0,0,
            0,0,-135,0,0,0,-15,0,0,0,
            0,0,0,0,0,0,-3,0,0,0,
            0,-121,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-49,0,0,
            0,0,0,0,0,0,0,0,-493,0,
            0,0,0,-88,0,0,0,0,-28,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-260,-29,0,-526,0,0,0,0,0,
            0,0,-337,0,0,0,0,-213,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-123,
            -30,0,0,-50,0,0,0,0,0,0,
            0,-31,0,0,0,-235,0,0,0,0,
            -166,-380,0,0,0,0,-368,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-57,0,
            0,0,0,0,0,0,0,0,0,0,
            -128,0,0,-495,0,0,0,0,-381,0,
            0,0,0,-59,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -32,0,0,0,0,0,0,-33,0,0,
            -273,0,0,0,0,-104,-340,0,-39,0,
            0,0,0,-409,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-34,0,0,0,0,
            0,0,0,0,0,0,0,-129,0,0,
            -279,0,0,0,0,0,0,-440,-41,0,
            0,0,0,-105,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-132,0,0,0,
            -142,0,0,0,0,0,0,-216,0,0,
            -326,0,0,0,0,-91,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-377,0,0,0,0,0,0,
            0,0,0,0,-402,0,0,-529,0,0,
            0,0,-92,0,0,0,0,-113,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-530,0,0,0,0,-93,
            0,0,0,0,-137,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -418,-357,0,0,0,0,0,0,-423,0,
            0,-280,0,0,0,0,-94,0,0,0,
            0,-141,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-195,-35,0,0,0,0,0,
            0,0,0,0,0,-540,0,0,-287,0,
            0,0,0,-95,0,0,0,0,-208,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -206,-36,0,0,0,0,0,0,0,0,
            0,0,-480,0,0,-327,0,0,0,0,
            -96,0,0,0,0,-218,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-220,-37,0,
            0,0,0,0,0,0,0,0,0,-38,
            0,0,-347,0,0,0,0,-97,0,0,
            0,0,-371,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-40,0,0,-270,-269,
            0,0,0,0,0,0,-462,0,0,-369,
            0,0,0,0,-98,0,0,0,0,-274,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-360,0,0,0,0,0,0,0,
            0,0,0,-261,0,0,-390,0,0,0,
            0,-99,0,0,0,0,-281,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-308,-55,
            0,0,-56,0,0,0,0,0,0,0,
            -262,0,0,-400,-288,-356,0,0,-100,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-447,0,0,0,
            -63,0,0,0,-475,0,0,0,0,0,
            -461,0,0,0,0,-101,0,0,0,0,
            -289,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-321,-64,0,0,-66,0,0,0,
            0,0,0,0,-67,0,0,-350,0,0,
            -222,0,-163,0,0,0,0,-319,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-411,
            -116,-108,0,0,0,0,0,0,-329,0,
            0,-333,0,0,-214,0,0,0,0,-354,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-434,0,0,
            0,-436,0,0,-379,0,0,0,0,-109,
            0,-246,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-503,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-229,0,-322,
            -313,0,0,0,0,0,0,0,-110,-320,
            0,0,0,0,0,0,0,-247,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-277,-111,0,0,0,-413,
            0,0,0,0,0,0,-446,0,0,-341,
            -324,0,0,-118,0,0,0,0,0,0,
            0,0,-131,-492,0,0,-435,0,0,0,
            0,0,0,-248,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-443,0,-416,0,0,-14,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-316,
            0,-392,0,0,0,0,0,0,0,-249,
            0,0,0,0,-143,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-290,0,-363,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-468,0,-120,0,0,-457,0,
            0,0,0,0,-328,-463,-450,-410,0,0,
            0,0,0,0,0,-250,0,0,0,0,
            -144,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-556,-291,0,-374,0,0,0,0,
            0,0,0,0,-405,0,0,0,0,0,
            0,-145,0,-146,0,0,0,0,0,0,
            -147,0,0,-421,0,0,0,0,0,0,
            0,-251,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-564,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-353,0,0,0,0,
            0,0,-510,0,-148,0,-572,0,0,-537,
            0,0,0,0,0,0,0,-252,0,0,
            0,0,-149,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-346,0,0,-336,0,0,
            0,0,0,0,0,0,0,0,0,-430,
            0,0,0,-464,0,0,-583,-361,0,0,
            0,0,0,0,-476,0,0,-150,0,0,
            0,0,0,-253,0,0,0,0,-431,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -348,-151,0,-138,0,0,0,0,-152,0,
            0,0,0,0,0,0,0,0,0,-355,
            0,0,0,-365,-570,0,-470,0,0,-378,
            0,0,-422,0,0,0,0,0,0,-254,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-140,
            0,0,0,0,-153,0,0,0,0,0,
            0,0,-366,0,0,0,0,0,-384,0,
            -453,0,-382,0,0,0,-533,0,-499,-154,
            0,0,0,0,0,-255,0,0,0,0,
            -155,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-349,0,-393,0,0,0,0,
            0,0,0,0,0,0,-388,-156,0,0,
            0,0,0,0,-471,-594,-527,0,0,0,
            0,-483,-157,0,0,0,0,0,0,0,
            0,-256,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-433,0,0,0,0,0,0,0,0,
            0,0,-412,-158,-391,-43,0,-122,0,0,
            0,-394,0,0,-159,0,0,-586,-587,-395,
            -160,-536,0,0,0,0,0,-352,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-351,-557,0,-397,0,0,
            0,0,0,0,-161,0,-201,0,0,0,
            -399,-167,0,-168,0,0,0,0,0,0,
            -169,0,-419,0,0,0,0,0,0,0,
            0,0,0,-589,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -425,0,0,0,-449,0,0,0,0,0,
            0,0,-479,0,0,0,-385,-417,-172,0,
            -376,0,0,0,0,-448,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-482,
            0,0,-403,0,0,0,0,-173,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-285,
            0,-174,0,-474,0,0,0,0,0,0,
            0,-478,0,0,-487,-490,0,-504,-515,0,
            0,-524,-525,-532,-175,-600,0,-528,0,-414,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-178,0,0,-531,0,
            0,-438,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-535,0,
            -182,0,0,0,0,0,0,-183,0,0,
            -554,0,0,-184,-185,0,-186,0,0,0,
            -538,-551,-187,-188,-210,0,0,0,-439,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-124,0,-189,0,0,
            0,0,0,0,-190,0,0,0,0,0,
            -513,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-558,-191,-194,
            0,0,0,0,0,0,0,0,0,-567,
            0,0,-575,-202,0,-552,-559,0,-180,-579,
            -584,-203,-209,0,0,0,0,-103,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-217,0,0,-227,
            0,0,0,-592,0,0,-599,-228,-534,-258,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-236,0,-48,0,
            0,-420,0,0,-267,0,0,-162,-278,-282,
            -345,0,-284,-296,0,0,0,0,0,0,
            0,0,-297,0,-298,-299,0,0,0,-300,
            0,0,-90,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-301,
            0,-302,0,-303,-304,0,0,0,-563,0,
            -245,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-70,-305,0,
            -306,-307,0,0,0,0,-312,-314,-315,-330,
            -334,-335,-338,0,-339,0,-358,0,-359,0,
            0,0,0,-364,0,0,-372,-47,0,0,
            0,0,-181,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-373,-389,-404,-406,-426,-429,-442,0,-565,
            0,0,-243,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-455,
            0,-456,0,-458,-459,-485,-230,-465,-467,-473,
            0,-481,-488,-489,-512,-514,-516,0,-517,0,
            -518,-370,0,-569,0,-573,0,-244,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-519,0,0,-521,-539,
            -541,-542,-544,-549,-553,-560,-568,-577,-585,-590,
            -601,0,0,0,0,0,0,0,-574,0,
            -85,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-593,-598,0,-240,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-86,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-87,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-241,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-454,0,0,0,0,0,0,0,0,
            0,0,0,0,-242,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-193,0,0,0,-164,-200,
            0,0,0,0,0,-17,-292,0,-293,0,
            0,0,0,0,0,0,0,0,0,0,
            -231,0,0,0,0,0,0,0,0,0,
            0,0,-232,0,0,-233,0,0,0,0,
            0,0,0,0,-79,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -71,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-80,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-81,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-82,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-237,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-238,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-239,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-283,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-295,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-343,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-362,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-102,
            0,0,0,0,0,0,0,0,0,0,
            0,-375,-494,0,0,0,0,0,0,0,
            -276,-332,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-1,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-52,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -76,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-580,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-83,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-84,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-491,
            -127,0,0,0,0,0,0,-344,0,0,
            -219,0,0,0,0,0,0,-223,-383,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-511,0,0,0,0,0,0,-523,0,
            -408,-133,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -211,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -588,0,0,0,0,0,0,0,0,0,
            0,0,0,-74,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -75,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-387,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-139,0,0,0,0,0,0,
            -171,0,0,0,0,0,-212,0,0,0,
            0,0,0,-520,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-224,0,
            -44,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-386,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-543,-225,0,
            0,0,0,0,0,0,-268,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-545,
            0,-548,0,0,0,0,0,-271,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-591,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-562,0,0,0,0,0,0,-226,-342,
            0,0,0,0,0,-498,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -398,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-576,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-45,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-407,0,0,0,0,0,-257,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-578,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-445,0,0,0,0,0,
            -331,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-582,0,0,
            0,0,0,0,-581,0,0,0,0,0,
            0,-46,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-466,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-597,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-205,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-469,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-602,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -221,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -77,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-78,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-179,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-20,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-21,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -22,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-23,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-24,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-25,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-26,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-27,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,-60,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-72,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-73,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,-204,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-437,0,0,0,0,0,0,0,0,
            0,0,0,0,-19,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-424,0,0,-508,
            -42,0,0,0,0,0,-234,0,0,0,
            0,0,0,-452,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-500,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-484,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-294,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-125,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,-401,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-318,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -310,0,0,0,0,0,0,0,0,0,
            0,-441,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-317,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,-396,-509,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-427,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,-496,0,0,0,0,
            0,-566,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,-451,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -477,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-432,0,0,0,0,0,
            0,0,0,-215,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            -486,0,0,0,0,0,0,0,0,0,
            -497,0,0,0,0,0,0,0,0,0,
            -263,0,0,0,0,0,0,0,0,0,
            0,0,0,0,-507,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,-505,0,0,0,0,0,0,0,
            0,-65,0,0,0,0,0,0,0,0,
            0,-555,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,-546,0,-547,
            0,-550,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0
        };
    };
    public final static short baseCheck[] = BaseCheck.baseCheck;
    @Override
    public final int baseCheck(int index) { return baseCheck[index]; }
    public final static short rhs[] = baseCheck;
    @Override
    public final int rhs(int index) { return rhs[index]; };

    public interface BaseAction {
        public final static char baseAction[] = {
            191,5,154,94,94,31,31,80,80,39,
            39,42,42,218,1,1,16,16,16,16,
            16,16,16,17,17,17,15,11,11,6,
            6,6,6,6,6,2,75,75,4,4,
            12,12,44,44,155,155,156,67,67,43,
            18,18,18,18,18,18,18,18,18,18,
            18,18,18,18,18,18,18,18,18,18,
            157,157,157,131,131,19,19,19,19,19,
            19,19,19,19,19,19,19,19,20,20,
            192,192,193,193,194,160,160,161,161,158,
            158,162,159,159,21,21,22,23,23,23,
            24,24,24,24,25,25,25,26,26,26,
            30,30,30,30,30,33,33,33,34,34,
            35,35,37,37,38,38,40,40,41,41,
            45,45,45,45,45,47,47,47,52,52,
            54,54,61,61,62,62,63,63,64,64,
            65,65,65,65,65,65,65,65,65,65,
            65,65,65,29,29,46,46,46,46,46,
            46,46,46,46,46,46,46,46,36,28,
            163,163,105,105,195,195,104,219,219,82,
            82,82,82,82,82,82,82,82,83,83,
            83,78,78,66,66,196,196,84,84,84,
            116,116,197,197,85,85,85,85,198,198,
            86,86,86,86,86,87,87,95,95,95,
            95,95,95,95,95,55,55,55,55,55,
            132,132,130,130,56,199,27,27,27,27,
            27,50,50,69,69,69,69,69,137,137,
            133,133,133,133,133,134,134,134,135,135,
            135,136,136,136,165,165,165,70,70,70,
            70,70,71,71,71,13,14,14,14,14,
            14,14,14,14,14,14,14,106,138,138,
            138,138,138,138,111,111,111,166,167,167,
            112,112,200,169,169,168,168,139,139,117,
            92,92,140,58,49,170,170,59,57,97,
            97,171,171,164,164,141,142,142,143,89,
            89,172,172,76,76,76,73,73,72,77,
            77,79,79,68,68,68,53,98,98,108,
            107,107,51,51,74,74,81,81,60,109,
            109,109,99,99,99,100,100,101,101,101,
            102,102,118,118,118,120,120,119,119,220,
            220,103,103,202,202,202,202,202,145,48,
            48,174,201,201,146,146,147,147,147,148,
            176,203,203,32,32,110,114,114,114,114,
            205,122,121,121,113,113,113,177,178,178,
            178,178,178,178,178,178,178,178,178,207,
            207,204,204,206,206,179,180,180,180,180,
            181,208,124,123,123,209,209,182,182,182,
            182,115,115,115,210,210,8,8,9,211,
            211,212,183,173,173,184,184,185,186,186,
            7,7,10,213,213,213,213,213,213,213,
            213,213,213,213,213,213,213,213,213,213,
            213,213,213,213,213,213,213,213,213,213,
            213,213,213,213,213,213,213,213,213,213,
            213,213,213,213,213,90,93,93,187,187,
            150,150,151,151,151,151,151,151,3,152,
            152,149,149,188,221,222,222,223,223,224,
            225,225,189,190,190,190,190,214,214,214,
            126,126,126,126,126,127,128,128,125,125,
            96,91,88,88,175,175,129,129,215,215,
            215,153,153,144,144,216,216,191,191,1119,
            35,2931,2924,4701,1355,27,30,31,1172,1197,
            26,28,2922,295,25,23,50,1259,106,76,
            77,107,1283,1332,1321,1428,332,2489,176,1421,
            1824,307,1705,1466,1799,4231,1752,1810,413,1846,
            175,1510,2623,35,311,190,71,2037,2273,34,
            265,2025,2046,1638,35,1149,32,4910,3812,27,
            30,31,1172,1197,374,28,1405,1850,268,263,
            264,1647,1673,35,2034,424,2081,2360,35,1149,
            32,672,5349,27,30,31,1172,1197,26,28,
            975,295,25,23,50,1259,106,76,77,107,
            1283,1332,1321,3168,49,308,161,425,1849,275,
            278,281,1212,985,2224,1991,959,1813,3766,71,
            35,329,3161,3368,3175,351,3484,356,1818,3174,
            388,3183,909,2264,2396,2858,5887,284,3177,3184,
            3218,160,578,759,35,432,1543,35,1149,32,
            4694,2369,27,30,31,1172,1197,57,28,1537,
            35,313,626,3860,3216,71,35,2273,3320,2360,
            35,1149,32,672,5349,27,30,31,1172,1197,
            26,28,975,295,25,23,50,1259,106,76,
            77,107,1283,1332,1321,3168,1038,387,161,2456,
            35,311,549,575,3279,579,71,3182,2700,71,
            35,2210,2058,4274,3161,1595,3175,379,1341,651,
            384,3174,534,3183,93,2598,3126,377,1088,3225,
            3177,3184,3218,160,578,378,3181,2360,35,1149,
            32,672,5349,27,30,31,1172,1197,26,28,
            975,295,25,23,50,1259,106,76,77,107,
            1283,1332,1321,3168,3573,159,161,440,3273,2215,
            35,1149,32,4694,1766,27,30,31,1172,1197,
            56,28,3161,479,3175,71,35,2034,424,3174,
            3185,3183,71,3487,549,575,3279,579,3177,3184,
            3218,160,578,61,1912,35,1149,32,4531,1257,
            27,30,31,1172,1197,26,28,467,3259,547,
            1815,3225,272,295,3855,759,35,3365,1053,2570,
            35,1149,32,672,5349,27,30,31,1172,1197,
            26,28,975,295,25,23,50,1259,106,76,
            77,107,1283,1332,1321,3168,56,49,161,1335,
            265,1207,549,575,3279,579,1851,3487,1991,809,
            42,3283,56,3260,3161,1400,3175,1207,273,263,
            264,3174,1556,3183,1729,1488,3282,2033,368,3225,
            3177,3184,3218,160,578,2708,35,1149,32,672,
            3329,27,30,31,1172,1197,26,28,975,295,
            25,23,50,1259,106,76,77,107,1283,1332,
            1321,1428,2600,3639,176,1421,60,1704,1705,1466,
            1799,324,1752,1810,1193,1846,175,3159,71,35,
            3328,414,1559,35,1149,32,865,1520,41,30,
            31,1172,1197,843,550,575,3279,579,2428,35,
            1149,32,672,2277,27,30,31,1172,1197,26,
            28,975,295,25,23,50,1259,106,76,77,
            107,1283,1332,1321,1428,147,147,176,1421,3488,
            4787,1705,1466,1799,533,1752,1810,474,1846,175,
            3159,2693,35,314,414,323,3327,35,1149,32,
            672,2634,27,30,31,1172,1197,26,28,975,
            295,25,23,50,1259,106,76,77,107,1283,
            1332,1321,1428,147,1823,3522,1421,4848,3086,1705,
            2854,421,415,2872,2638,35,1149,32,672,2736,
            27,30,31,1172,1197,26,28,975,295,25,
            23,50,1259,106,76,77,107,1283,1332,1321,
            1428,1104,2738,176,1421,2200,1860,1705,1466,1799,
            2089,1752,1810,3470,1846,175,3159,1537,35,313,
            414,5241,2795,1994,35,1149,32,2765,3281,40,
            30,31,1172,1197,422,415,2872,2973,35,1149,
            32,672,1938,27,30,31,1172,1197,26,28,
            975,295,25,23,50,1259,106,76,77,107,
            1283,1332,1321,1428,426,463,176,1421,56,4512,
            1705,1466,1799,677,1752,1810,765,1846,175,71,
            35,2034,424,190,3327,35,1149,32,672,3735,
            27,30,31,1172,1197,26,28,975,295,25,
            23,50,1259,106,76,77,107,1283,1332,1321,
            1428,488,69,1239,1421,71,3625,1705,1466,2803,
            412,415,2872,2973,35,1149,32,672,2524,27,
            30,31,1172,1197,26,28,975,295,25,23,
            50,1259,106,76,77,107,1283,1332,1321,1428,
            1213,1449,176,1421,56,1038,1705,1466,1799,769,
            1752,1810,1233,1846,175,3462,1537,35,566,408,
            5853,2532,2973,35,1149,32,672,2634,27,30,
            31,1172,1197,26,28,975,295,25,23,50,
            1259,106,76,77,107,1283,1332,1321,1428,56,
            626,176,1421,1193,837,1705,1466,1799,1086,1752,
            1810,1818,1846,175,71,35,2034,424,408,2973,
            35,1149,32,672,2277,27,30,31,1172,1197,
            26,28,975,295,25,23,50,1259,106,76,
            77,107,1283,1332,1321,1428,470,925,176,1421,
            389,1338,1705,1466,1799,24,1752,1810,55,1846,
            175,71,35,2273,310,408,2277,2670,407,2502,
            35,1149,32,672,2634,27,30,31,1172,1197,
            26,28,975,295,25,23,50,1259,106,76,
            77,107,1283,1332,1321,1428,1662,69,176,1421,
            427,463,1705,1466,1799,496,1752,1810,1818,1846,
            175,71,3471,2273,74,174,1133,406,2345,2973,
            35,1149,32,672,2277,27,30,31,1172,1197,
            26,28,975,295,25,23,50,1259,106,76,
            77,107,1283,1332,1321,1428,359,1818,176,1421,
            666,1818,1705,1466,1799,68,1752,1810,1818,1846,
            175,71,35,316,404,191,2973,35,1149,32,
            672,3462,27,30,31,1172,1197,26,28,975,
            295,25,23,50,1259,106,76,77,107,1283,
            1332,1321,1428,1193,1818,176,1421,429,463,1705,
            1466,1799,495,1752,1810,2491,1846,175,71,35,
            2034,424,187,2973,35,1149,32,672,2277,27,
            30,31,1172,1197,26,28,975,295,25,23,
            50,1259,106,76,77,107,1283,1332,1321,1428,
            469,5679,176,1421,438,51,1705,1466,1799,53,
            1752,1810,361,1846,175,71,35,2034,424,186,
            2973,35,1149,32,672,2277,27,30,31,1172,
            1197,26,28,975,295,25,23,50,1259,106,
            76,77,107,1283,1332,1321,1428,468,97,176,
            1421,1818,241,1705,1466,1799,87,1752,1810,2178,
            1846,175,931,35,2273,3472,185,2973,35,1149,
            32,672,2277,27,30,31,1172,1197,26,28,
            975,295,25,23,50,1259,106,76,77,107,
            1283,1332,1321,1428,56,65,176,1421,442,6191,
            1705,1466,1799,52,1752,1810,2280,1846,175,931,
            35,2273,310,184,2973,35,1149,32,672,2277,
            27,30,31,1172,1197,26,28,975,295,25,
            23,50,1259,106,76,77,107,1283,1332,1321,
            1428,56,228,176,1421,98,1022,1705,1466,1799,
            90,1752,1810,2322,1846,175,71,35,2273,312,
            183,2973,35,1149,32,672,2277,27,30,31,
            1172,1197,26,28,975,295,25,23,50,1259,
            106,76,77,107,1283,1332,1321,1428,56,61,
            176,1421,2870,3060,1705,1466,1799,385,1752,1810,
            1007,1846,175,71,35,2273,3523,182,2973,35,
            1149,32,672,2018,27,30,31,1172,1197,26,
            28,975,295,25,23,50,1259,106,76,77,
            107,1283,1332,1321,1428,585,1334,176,1421,56,
            1488,1705,1466,1799,966,1752,1810,2178,1846,175,
            71,35,2273,315,181,2973,35,1149,32,672,
            2277,27,30,31,1172,1197,26,28,975,295,
            25,23,50,1259,106,76,77,107,1283,1332,
            1321,1428,2261,147,176,1421,334,4931,1705,1466,
            1799,2405,1752,1810,69,1846,175,71,35,2273,
            565,180,2973,35,1149,32,672,2277,27,30,
            31,1172,1197,26,28,975,295,25,23,50,
            1259,106,76,77,107,1283,1332,1321,1428,56,
            1348,176,1421,1847,2100,1705,1466,1799,2578,1752,
            1810,69,1846,175,2934,2277,1488,364,179,2973,
            35,1149,32,672,347,27,30,31,1172,1197,
            26,28,975,295,25,23,50,1259,106,76,
            77,107,1283,1332,1321,1428,67,1499,176,1421,
            2250,233,1705,1466,1799,1499,1752,1810,2862,1846,
            175,759,35,432,1939,178,2973,35,1149,32,
            672,2277,27,30,31,1172,1197,26,28,975,
            295,25,23,50,1259,106,76,77,107,1283,
            1332,1321,1428,56,2795,176,1421,1361,1111,1705,
            1466,1799,66,1752,1810,1482,1846,175,2731,35,
            564,2413,177,2852,35,1149,32,672,159,27,
            30,31,1172,1197,26,28,975,295,25,23,
            50,1259,106,76,77,107,1283,1332,1321,1428,
            1734,1508,1413,1421,5055,3855,1705,1466,1799,2627,
            1752,1810,1365,3317,196,2973,35,1149,32,672,
            2007,27,30,31,1172,1197,26,28,975,295,
            25,23,50,1259,106,76,77,107,1283,1332,
            1321,1428,3574,1907,176,1421,1193,2277,1705,1466,
            1799,391,1752,1810,3260,1846,175,483,2934,390,
            593,139,1537,35,489,2007,5117,362,593,367,
            1934,2342,3094,35,1149,32,672,1528,27,30,
            31,1172,1197,26,28,975,295,25,23,50,
            1259,106,76,77,107,1283,1332,1321,3168,920,
            2664,161,1243,35,1149,32,4910,4511,27,30,
            31,1172,1197,374,28,2312,2342,3161,3847,3175,
            56,1229,35,329,3174,1347,3183,363,370,2112,
            3002,272,295,3177,3184,3218,160,172,3094,35,
            1149,32,672,70,27,30,31,1172,1197,26,
            28,975,295,25,23,50,1259,106,76,77,
            107,1283,1332,1321,3168,2555,2132,161,88,265,
            2489,102,2933,370,354,2260,356,2489,349,1437,
            2701,56,465,3161,1350,3175,3582,273,263,264,
            3174,348,3183,2831,2171,35,489,1488,5117,3177,
            3184,3218,160,171,3094,35,1149,32,672,3528,
            27,30,31,1172,1197,26,28,975,295,25,
            23,50,1259,106,76,77,107,1283,1332,1321,
            3168,2406,1915,161,2627,265,5179,2734,1662,2594,
            3185,483,4274,342,345,1763,482,3568,3569,3161,
            320,3175,2723,277,263,264,3174,321,3183,360,
            1501,1956,2007,411,378,3177,3184,3218,160,170,
            3094,35,1149,32,672,2008,27,30,31,1172,
            1197,26,28,975,295,25,23,50,1259,106,
            76,77,107,1283,1332,1321,3168,671,2277,161,
            1243,35,1149,32,4910,4511,27,30,31,1172,
            1197,374,28,2342,1734,3161,1655,3175,5055,147,
            44,3283,3174,5836,3183,56,1488,2489,2634,65,
            2446,3177,3184,3218,160,169,3094,35,1149,32,
            672,2084,27,30,31,1172,1197,26,28,975,
            295,25,23,50,1259,106,76,77,107,1283,
            1332,1321,3168,1499,2277,161,2600,265,2594,369,
            370,409,354,2260,356,2696,349,1437,486,3568,
            3569,3161,1423,3175,1645,280,263,264,3174,2987,
            3183,1653,411,89,2007,64,102,3177,3184,3218,
            160,168,3094,35,1149,32,672,331,27,30,
            31,1172,1197,26,28,975,295,25,23,50,
            1259,106,76,77,107,1283,1332,1321,3168,2312,
            1893,161,1243,35,1149,32,4910,4511,27,30,
            31,1172,1197,374,28,2342,69,3161,478,3175,
            492,428,463,1728,3174,227,3183,759,35,432,
            71,35,329,3177,3184,3218,160,167,3094,35,
            1149,32,672,399,27,30,31,1172,1197,26,
            28,975,295,25,23,50,1259,106,76,77,
            107,1283,1332,1321,3168,2277,466,161,56,2855,
            3076,2975,370,2145,354,2260,356,358,349,1437,
            1229,3562,329,3161,2626,3175,593,2818,2698,4440,
            3174,3628,3183,1954,2314,2489,2787,3470,415,3177,
            3184,3218,160,166,3094,35,1149,32,672,2789,
            27,30,31,1172,1197,26,28,975,295,25,
            23,50,1259,106,76,77,107,1283,1332,1321,
            3168,2277,417,161,1729,35,1149,32,4531,2417,
            27,30,31,1172,1197,59,28,3277,3629,3161,
            1335,3175,584,457,56,1728,3174,147,3183,1444,
            1365,6056,55,2007,214,3177,3184,3218,160,165,
            3094,35,1149,32,672,330,27,30,31,1172,
            1197,26,28,975,295,25,23,50,1259,106,
            76,77,107,1283,1332,1321,3168,1662,1716,161,
            1729,35,1149,32,4531,2420,27,30,31,1172,
            1197,58,28,56,2342,3161,585,3175,2408,2762,
            1956,2593,3174,56,3183,2776,6111,2489,3362,2007,
            495,3177,3184,3218,160,164,3094,35,1149,32,
            672,2874,27,30,31,1172,1197,26,28,975,
            295,25,23,50,1259,106,76,77,107,1283,
            1332,1321,3168,3072,2277,161,1994,35,1149,32,
            365,370,1669,30,31,1172,1197,56,3001,1893,
            2342,3161,2474,3175,584,147,319,1488,3174,6181,
            3183,71,147,405,1193,54,6233,3177,3184,3218,
            160,163,3094,35,1149,32,672,339,27,30,
            31,1172,1197,26,28,975,295,25,23,50,
            1259,106,76,77,107,1283,1332,1321,3168,2594,
            2597,161,1994,35,1149,32,3084,370,1857,30,
            31,1172,1197,2018,1917,56,56,3161,1833,3175,
            2673,4274,56,3171,3174,572,3183,5737,1488,1488,
            1488,1752,1488,3177,3184,3218,160,162,3154,35,
            1149,32,672,378,27,30,31,1172,1197,26,
            28,975,295,25,23,50,1259,106,76,77,
            107,1283,1332,1321,3168,2010,2489,161,56,265,
            2594,2594,2971,6135,3258,1845,718,71,35,2034,
            424,56,2095,3161,3785,3175,2138,283,263,264,
            3174,3724,3183,56,587,586,142,2082,1987,3177,
            3184,3218,160,159,3214,35,1149,32,672,307,
            27,30,31,1172,1197,26,28,975,295,25,
            23,50,1259,106,76,77,107,1283,1332,1321,
            1428,56,417,176,1421,56,5754,1705,1466,1799,
            1995,1752,1810,2178,1846,175,418,2277,2277,2185,
            221,3327,35,1149,32,672,2277,27,30,31,
            1172,1197,26,28,975,295,25,23,50,1259,
            106,76,77,107,1283,1332,1321,1428,357,101,
            2257,1421,254,309,1705,1466,1799,3064,1752,1810,
            2277,3317,196,3327,35,1149,32,672,2353,27,
            30,31,1172,1197,26,28,975,295,25,23,
            50,1259,106,76,77,107,1283,1332,1321,1428,
            2594,3078,2418,1421,56,4274,1705,1466,1799,2739,
            1752,1810,56,3317,196,56,56,5815,2178,2178,
            6205,2533,2178,2178,56,2450,319,4140,2277,2443,
            3327,35,1149,32,672,1661,27,30,31,1172,
            1197,26,28,975,295,25,23,50,1259,106,
            76,77,107,1283,1332,1321,1428,338,211,487,
            1421,231,230,1705,1466,1799,2496,1752,1810,2416,
            3317,196,3327,35,1149,32,672,459,27,30,
            31,1172,1197,26,28,975,295,25,23,50,
            1259,106,76,77,107,1283,1332,1321,1428,56,
            591,1867,1421,395,2906,1705,1466,1799,571,1752,
            1810,2669,3317,196,2268,581,2665,753,2575,3370,
            3373,2178,2178,491,2006,71,35,2034,424,3327,
            35,1149,32,672,328,27,30,31,1172,1197,
            26,28,975,295,25,23,50,1259,106,76,
            77,107,1283,1332,1321,1428,1922,49,1657,1421,
            337,234,1705,1466,1799,1019,1752,1810,46,3317,
            196,3486,35,1149,32,672,458,27,30,31,
            1172,1197,26,28,975,295,25,23,50,1259,
            106,76,77,107,1283,1332,1321,1428,56,2533,
            1248,1421,416,995,1705,1466,1799,265,1752,1810,
            56,3317,196,2927,2914,4329,2178,2178,4591,2023,
            2178,2490,2534,835,3368,286,263,264,3327,35,
            1149,32,672,461,27,30,31,1172,1197,26,
            28,975,295,25,23,50,1259,106,76,77,
            107,1283,1332,1321,1428,232,333,744,1421,4872,
            2492,1705,1466,1799,2178,1752,2915,2178,2564,2277,
            3433,35,1149,32,672,3623,27,30,31,1172,
            1197,26,28,975,295,25,23,50,1259,106,
            76,77,107,1283,1332,1321,3168,3062,387,2276,
            413,2796,2594,255,1207,1486,225,4274,1508,1011,
            2290,2566,3855,1929,589,3161,4274,3175,379,1341,
            651,384,3174,743,3183,915,925,192,577,4140,
            2045,3177,3461,3327,35,1149,32,672,4140,27,
            30,31,1172,1197,26,28,975,295,25,23,
            50,1259,106,76,77,107,1283,1332,1321,1428,
            2542,3260,577,1421,2486,2179,1705,1466,1799,2277,
            2865,3380,35,1149,32,672,367,27,30,31,
            1172,1197,26,28,975,295,25,23,50,1259,
            106,76,77,107,1283,1332,1321,3168,2276,1930,
            4964,2389,757,1207,1588,395,6144,2494,2878,2945,
            2601,3003,1663,2529,396,2595,3161,2628,3175,3004,
            2996,3370,3373,3174,2664,3183,192,2633,71,35,
            2034,424,3425,2905,35,1149,32,672,1207,27,
            30,31,1172,1197,26,28,975,295,25,23,
            50,1259,106,76,77,107,1283,1332,1321,3168,
            49,188,2706,2668,2995,2959,1216,2778,2735,1394,
            2277,1991,1171,3380,35,1149,32,672,3357,27,
            30,31,1172,1197,26,28,975,295,25,23,
            50,1259,106,76,77,107,1283,1332,1321,3168,
            1218,5026,3064,1682,1292,3006,2822,2011,2929,2793,
            2881,4274,2960,3117,3124,3092,3176,87,3161,2962,
            3175,3026,1851,3487,2277,3174,2277,3422,3380,35,
            1149,32,672,4140,27,30,31,1172,1197,26,
            28,975,295,25,23,50,1259,106,76,77,
            107,1283,1332,1321,3168,5088,3086,2868,265,3118,
            1362,3119,173,3183,2998,3236,1637,3120,3237,3244,
            2966,2958,6850,3161,6850,3175,277,263,264,2277,
            3424,3327,35,1149,32,672,6850,27,30,31,
            1172,1197,26,28,975,295,25,23,50,1259,
            106,76,77,107,1283,1332,1321,1428,6850,541,
            2869,1421,2277,2277,2740,3380,35,1149,32,672,
            6850,27,30,31,1172,1197,26,28,975,295,
            25,23,50,1259,106,76,77,107,1283,1332,
            1321,3168,6850,3327,5212,6850,6850,6850,6850,6850,
            6850,6850,6850,6850,6850,6850,539,540,6850,6850,
            3161,323,3386,3327,35,1149,32,672,6850,27,
            30,31,1172,1197,26,28,975,295,25,23,
            50,1259,106,76,77,107,1283,1332,1321,1428,
            2853,3522,6850,2751,3327,35,1149,32,672,6850,
            27,30,31,1172,1197,26,28,975,295,25,
            23,50,1259,106,76,77,107,1283,1332,1321,
            1428,6850,6850,6850,2788,3380,35,1149,32,672,
            6850,27,30,31,1172,1197,26,28,975,295,
            25,23,50,1259,106,76,77,107,1283,1332,
            1321,3168,1258,35,1149,32,4993,4511,27,30,
            31,1172,1197,374,28,3380,35,1149,32,672,
            3390,27,30,31,1172,1197,26,28,975,295,
            25,23,50,1259,106,76,77,107,1283,1332,
            1321,3168,6850,6850,6850,71,35,2034,424,2776,
            71,35,2034,424,4451,3260,56,2276,6850,2276,
            3420,1207,1207,6850,1207,6850,6850,6850,6850,6850,
            367,2092,6850,6850,354,2260,356,49,349,1437,
            386,6850,49,2181,188,192,2783,192,1991,1282,
            6850,348,1394,1991,799,3327,35,1149,32,672,
            5914,27,30,31,1172,1197,26,28,975,295,
            25,23,50,1259,106,76,77,107,1283,1332,
            1321,2535,265,6850,6850,6850,6850,6850,387,6850,
            6850,56,6850,6850,265,6850,1207,265,6850,6850,
            280,263,264,341,345,1763,6850,6850,379,1341,
            651,384,283,263,264,569,263,264,1776,188,
            6850,6850,2641,6850,2774,6850,2983,1521,3327,35,
            1149,32,672,3572,27,30,31,1172,1197,26,
            28,975,295,25,23,50,1259,106,76,77,
            107,1283,1332,1321,2553,3327,35,1149,32,672,
            6850,27,30,31,1172,1197,26,28,975,295,
            25,23,50,1259,106,76,77,107,1283,1332,
            1321,2608,3327,35,1149,32,672,6850,27,30,
            31,1172,1197,26,28,975,295,25,23,50,
            1259,106,76,77,107,1283,1332,1321,2642,3327,
            35,1149,32,672,6850,27,30,31,1172,1197,
            26,28,975,295,25,23,50,1259,106,76,
            77,107,1283,1332,1321,3374,3327,35,1149,32,
            672,6850,27,30,31,1172,1197,26,28,975,
            295,25,23,50,1259,106,76,77,107,1283,
            1332,1321,3383,3327,35,1149,32,672,6850,27,
            30,31,1172,1197,26,28,975,295,25,23,
            50,1259,106,76,77,107,1283,1332,1321,3385,
            1339,35,1149,32,4910,4448,27,30,31,1172,
            1197,374,28,3327,35,1149,32,672,6850,27,
            30,31,1172,1197,26,28,975,295,25,23,
            50,1259,106,76,77,107,1283,1332,1321,2905,
            3759,35,1149,32,4910,4755,27,30,31,1172,
            1197,374,28,6850,1220,35,3525,32,4993,4511,
            27,30,31,1172,1197,374,28,6850,6850,6850,
            56,386,354,2260,356,1207,349,1437,6850,387,
            6850,6850,2276,2276,6850,6850,6850,1207,1207,3475,
            6850,1508,1904,6850,6850,3855,3855,6850,188,379,
            1341,651,384,6850,6850,6850,2871,3260,6850,3473,
            192,192,354,2260,356,6850,349,1437,2292,387,
            6850,6850,367,1207,6850,6850,354,2260,356,2987,
            349,1437,6850,6850,3539,35,2034,424,4441,379,
            1341,651,384,2455,3260,3260,188,270,295,1776,
            6850,6850,5914,6850,597,6850,6850,6850,6850,4232,
            4232,3327,35,1149,32,672,307,27,30,31,
            1172,1197,26,28,975,295,25,23,50,1259,
            106,76,77,107,2462,265,6850,2988,3088,2382,
            35,1149,32,4910,4511,27,30,31,1172,1197,
            374,28,401,268,263,264,3327,35,1149,32,
            672,6850,27,30,31,1172,1197,26,28,975,
            295,25,23,50,1259,106,76,77,107,1283,
            1332,2649,6850,453,455,3524,6850,6850,6850,6850,
            308,6850,6850,6850,275,278,281,1212,985,6850,
            6850,94,96,6850,6850,6850,6850,6850,6850,6850,
            1575,354,2260,356,6850,349,1437,909,2264,2396,
            2858,5887,284,3327,35,1149,32,672,348,27,
            30,31,1172,1197,26,28,975,295,25,23,
            50,1259,106,76,77,107,1283,1332,2715,3216,
            259,243,35,2034,424,599,6850,6850,1508,604,
            6850,2260,3855,6850,6850,3855,4274,6850,56,71,
            35,2034,424,1207,6850,6850,6850,261,188,6850,
            341,345,1763,49,6850,6850,3079,6850,4140,212,
            6850,6850,2594,6850,1991,3274,188,6850,236,248,
            653,307,6850,3324,1955,235,245,246,247,249,
            3572,3260,1,6850,3260,6850,201,599,2917,2180,
            6850,1508,1832,6850,1207,3855,367,4274,200,367,
            6850,6850,215,199,202,203,204,205,206,261,
            188,71,35,2034,424,6850,6850,188,3079,378,
            6850,212,6850,6850,2594,3276,4675,6850,233,6144,
            236,248,653,6850,395,6850,6850,235,245,246,
            247,249,6850,49,3260,375,6850,6850,201,1917,
            3370,3373,630,6850,1991,959,6850,6850,6850,367,
            200,6850,213,6850,216,199,202,203,204,205,
            206,1416,35,1149,32,4910,4448,27,30,31,
            1172,1197,374,28,3327,35,1149,32,672,5962,
            27,30,31,1172,1197,26,28,975,295,25,
            23,50,1259,106,76,77,107,1283,2355,6850,
            6850,3327,35,1149,32,672,4502,27,30,31,
            1172,1197,26,28,975,295,25,23,50,1259,
            106,76,77,107,1283,2421,6850,6850,6850,6850,
            6850,6850,6850,354,2260,356,6850,349,1437,6850,
            387,6850,6850,6850,6850,1770,35,1149,32,4993,
            588,27,30,31,1172,1197,374,28,6850,6850,
            379,1341,651,384,329,35,2034,424,6850,6850,
            589,2027,35,2034,424,1751,6850,2003,35,2034,
            424,6850,6850,6850,345,6850,6850,6850,6850,599,
            6850,6850,6850,6850,6850,6850,49,6850,3260,56,
            6850,56,6850,49,1207,6850,4274,1991,1298,307,
            6850,261,188,368,1991,2051,6850,354,2260,356,
            3079,350,1437,212,387,2260,2594,188,378,3855,
            4274,4707,236,248,653,2011,6850,6850,2917,235,
            245,246,247,249,381,1341,651,384,431,56,
            201,6850,4140,599,1207,6850,6850,329,35,2034,
            424,718,200,6850,6850,6850,3624,199,202,203,
            204,205,206,6850,6850,261,188,188,3260,6850,
            6850,6850,2150,3369,3079,2378,6850,212,6850,49,
            2594,6850,6850,367,6850,6850,236,248,653,6850,
            1991,47,6850,235,245,246,247,249,72,6850,
            517,6850,2180,6850,201,599,6850,599,243,35,
            2034,424,6850,4675,1101,6850,200,6850,395,6850,
            210,199,202,203,204,205,206,261,188,3270,
            188,6850,3508,1917,3370,3373,3079,1207,3079,212,
            49,212,2594,6850,6850,6850,6850,6850,236,248,
            653,1991,47,6850,6850,235,245,246,247,249,
            188,6850,603,6850,6850,6850,201,599,194,56,
            243,35,2034,424,1207,1531,2775,6850,200,6850,
            228,4274,208,199,202,203,204,205,206,261,
            188,329,35,2034,424,6850,6850,188,3079,6850,
            6850,212,49,378,2594,2444,6850,592,6850,6850,
            236,248,653,1991,2729,6850,6850,235,245,246,
            247,249,6850,49,689,6850,6850,6850,201,599,
            6850,6850,6850,6850,1991,47,718,4459,56,6850,
            200,6850,6850,4274,209,199,202,203,204,205,
            206,261,188,243,35,2034,424,595,2842,56,
            3079,6850,6850,212,1207,378,2594,6850,6850,6850,
            6850,6850,236,248,653,6850,6850,6850,6850,235,
            245,246,247,249,6850,49,775,188,6850,6850,
            201,599,6850,6850,6850,3459,1991,1488,718,6850,
            6062,229,200,6850,6850,6850,219,199,202,203,
            204,205,206,261,188,243,35,2034,424,2209,
            4459,56,3079,6850,6850,212,1207,3673,2594,6850,
            6850,6850,6850,6850,236,248,653,6850,6850,6850,
            6850,235,245,246,247,249,6850,49,861,188,
            6850,6850,201,599,6850,56,6850,1564,1991,47,
            1207,6850,56,6850,200,6850,6850,4274,3630,199,
            202,203,204,205,206,261,188,243,35,2034,
            424,6850,885,188,3079,6850,6850,212,6850,378,
            2594,3672,3129,6850,6850,6850,236,248,653,6850,
            6850,6850,6850,235,245,246,247,249,6850,49,
            947,6850,6850,6850,201,599,6850,6850,6850,6850,
            1991,47,718,6850,56,6850,200,6850,6850,4274,
            224,199,202,203,204,205,206,261,188,243,
            35,2034,424,2246,1249,6850,3079,6850,6850,212,
            6850,378,2594,6850,6850,6850,6850,6850,236,248,
            653,6850,6850,6850,6850,235,245,246,247,249,
            6850,49,1033,6850,6850,6850,201,599,6850,6850,
            6850,6850,1991,47,718,6850,6850,6850,200,6850,
            6850,6850,218,199,202,203,204,205,206,261,
            188,71,35,2034,424,1870,1384,6850,3079,6850,
            6850,212,6850,6850,2594,6850,6850,6850,6850,6850,
            236,248,653,6850,6850,6850,6850,235,245,246,
            247,249,6850,49,6850,6850,6850,6850,201,6850,
            6850,6850,6850,6850,1991,642,6850,6850,6850,6850,
            200,6850,6850,6850,227,199,202,203,204,205,
            206,3327,35,1149,32,672,6850,27,30,31,
            1172,1197,26,28,975,295,25,23,50,1259,
            106,76,77,107,2464,3327,35,1149,32,672,
            6850,27,30,31,1172,1197,26,28,975,295,
            25,23,50,1259,106,76,77,107,2471,3638,
            35,553,6850,6850,6850,6850,6850,6850,6850,6850,
            6850,6850,270,295,3327,35,1149,32,672,6850,
            27,30,31,1172,1197,26,28,975,295,25,
            23,50,1259,106,76,77,85,6850,6850,6850,
            6850,6850,6850,6850,6850,3327,2037,1149,2045,672,
            265,27,30,31,1172,1197,26,28,975,295,
            25,23,50,1259,106,76,77,84,268,263,
            264,3327,35,1149,32,672,6850,27,30,31,
            1172,1197,26,28,975,295,25,23,50,1259,
            106,76,77,83,6850,6850,6850,6850,6850,6850,
            6850,6850,6850,6850,6850,6850,6850,6850,6850,275,
            278,281,1212,985,6850,6850,6850,6850,6850,6850,
            6850,6850,6850,6850,6850,6850,6850,6850,6850,6850,
            6850,6850,2198,3567,3881,3893,5747,3327,35,1149,
            32,672,6850,27,30,31,1172,1197,26,28,
            975,295,25,23,50,1259,106,76,77,82,
            3327,35,1149,32,672,6850,27,30,31,1172,
            1197,26,28,975,295,25,23,50,1259,106,
            76,77,81,6850,6850,6850,6850,562,563,567,
            3327,35,1149,32,672,6850,27,30,31,1172,
            1197,26,28,975,295,25,23,50,1259,106,
            76,77,80,3896,3327,35,1149,32,672,6850,
            27,30,31,1172,1197,26,28,975,295,25,
            23,50,1259,106,76,77,79,3327,35,1149,
            32,672,6850,27,30,31,1172,1197,26,28,
            975,295,25,23,50,1259,106,76,77,78,
            3033,35,1149,32,672,6850,27,30,31,1172,
            1197,26,28,975,295,25,23,50,1259,106,
            76,77,104,3327,35,1149,32,672,6850,27,
            30,31,1172,1197,26,28,975,295,25,23,
            50,1259,106,76,77,109,3327,35,1149,32,
            672,6850,27,30,31,1172,1197,26,28,975,
            295,25,23,50,1259,106,76,77,108,3327,
            35,1149,32,672,6850,27,30,31,1172,1197,
            26,28,975,295,25,23,50,1259,106,76,
            77,105,1492,35,3525,32,4910,4511,27,30,
            31,1172,1197,374,28,3274,35,1149,32,672,
            6850,27,30,31,1172,1197,26,28,975,295,
            25,23,50,1259,86,76,77,1603,6850,6850,
            56,56,4274,6850,6850,4274,599,3687,35,553,
            6850,6850,6850,6850,1870,6850,6850,6850,6850,4274,
            271,295,6850,6850,261,6850,6850,378,378,188,
            6850,6850,6850,6850,354,2260,356,1494,349,1437,
            6850,261,6850,6850,6850,238,248,653,6850,6850,
            6850,2455,237,245,246,247,249,6850,265,6850,
            718,718,238,248,653,6850,6850,6850,6850,237,
            245,246,247,249,6850,1959,269,263,264,6850,
            4274,545,1436,6850,6850,6850,6850,239,241,243,
            3469,6850,250,240,242,6850,2271,35,2034,424,
            6850,6850,261,6850,239,241,243,3469,6850,250,
            240,242,6850,71,35,2034,424,276,279,282,
            1212,985,6850,238,248,653,6850,2407,49,6097,
            237,245,246,247,249,6850,6850,6850,6850,1991,
            47,454,455,3524,2605,49,6097,3589,35,2034,
            424,4441,6850,6850,6850,6850,1991,2048,6850,6850,
            271,295,6850,719,6850,239,241,243,3469,6850,
            250,240,242,6850,1385,35,1149,32,4993,307,
            27,30,31,1172,1197,374,28,6850,1296,6850,
            6850,6850,5951,4274,6850,562,563,568,265,6850,
            6850,6850,6850,6850,6850,2737,6850,6097,6850,6850,
            6850,71,35,2034,424,261,269,263,264,6850,
            6850,6850,1385,35,1149,32,4993,3260,27,30,
            31,1172,1197,374,28,6850,828,443,6002,6850,
            6850,6850,368,49,6850,6850,354,2260,356,6850,
            352,1437,6850,308,1991,2660,6850,276,279,282,
            1212,985,2315,35,1149,32,4910,4194,27,30,
            31,1172,1197,374,28,3260,6850,6850,444,445,
            446,3469,2048,56,6850,285,6850,4274,4274,6850,
            368,6850,6850,6850,354,2260,356,1692,350,1437,
            6850,439,4274,3467,6850,6850,6850,6850,6850,261,
            378,6850,6850,6850,6850,6850,243,35,2034,424,
            6850,6850,2182,6850,261,6850,6850,599,6850,6850,
            238,248,653,6850,351,3484,356,237,245,246,
            247,249,6850,718,6850,238,248,653,49,378,
            188,6850,237,245,246,247,249,1781,220,1991,
            47,6850,4274,6850,543,447,450,6850,6850,6850,
            6850,2137,239,241,243,3469,4274,581,240,242,
            6850,6850,2512,1578,261,6850,6850,239,241,243,
            3469,6850,580,240,242,2822,6850,6850,261,6850,
            4274,6850,6850,6850,2126,238,248,653,3855,6850,
            6850,6850,237,245,246,247,249,6850,6850,238,
            248,653,4140,6850,6850,6850,237,245,246,247,
            249,2226,6850,6850,2598,6850,4274,6850,222,6850,
            6850,243,35,2034,424,6850,6850,239,241,243,
            3469,1179,251,240,242,5951,4274,3260,261,6850,
            6850,239,241,243,3469,2882,340,240,242,6850,
            4274,6850,368,49,6850,6850,6850,6850,261,238,
            248,653,6850,387,1991,47,237,245,246,247,
            249,6850,4140,2459,35,2034,424,6850,541,828,
            443,6002,56,381,1341,651,384,599,1625,6850,
            6850,6850,56,6850,6850,6850,6850,4274,6850,3280,
            6850,239,241,243,3469,49,535,240,242,378,
            188,6850,6850,6850,6850,6850,1991,47,1394,378,
            6850,444,445,446,3469,538,540,6850,56,6850,
            56,6850,56,599,6850,599,6850,599,6850,6850,
            2540,6850,718,6850,6850,6850,3467,6850,541,6850,
            6850,6850,718,6850,6850,378,188,378,188,378,
            188,6850,3564,1635,220,6850,220,6850,220,6850,
            6850,6850,6850,596,6850,6850,6850,6850,6850,6850,
            6850,6850,6850,6850,6850,6850,6850,6850,2512,6850,
            2512,6850,2512,6850,6850,538,540,6850,6850,6850,
            6850,6850,6850,6850,6850,6850,6850,6850,447,449,
            6850,6850,6850,6850,6850,6850,6850,6850,6850,6850,
            6850,6850,6850,6850,6850,6850,6850,6850,6850,6850,
            6850,6850,3620,6850,6850,627,6850,6850,5928,6850,
            6850,6850,6850,6850,3429,6850,3530,6850,3584,6850,
            0,39,6865,0,39,6864,0,1238,29,0,
            476,1324,0,490,1369,0,38,646,0,38,
            6865,0,38,6864,0,4005,125,0,1,480,
            0,494,1381,0,493,1478,0,956,91,0,
            1238,423,0,35,33,0,32,34,0,39,
            646,0,1,1085,0,1,7156,0,1,7155,
            0,1,7154,0,1,7153,0,1,7152,0,
            1,7151,0,1,7150,0,1,7149,0,1,
            7148,0,1,7147,0,1,7146,0,39,1,
            6865,0,39,1,6864,0,317,430,0,317,
            322,0,7117,274,0,7116,274,0,7223,274,
            0,7222,274,0,7144,274,0,7143,274,0,
            7142,274,0,7141,274,0,7140,274,0,7139,
            274,0,7138,274,0,7137,274,0,7156,274,
            0,7155,274,0,7154,274,0,7153,274,0,
            7152,274,0,7151,274,0,7150,274,0,7149,
            274,0,7148,274,0,7147,274,0,7146,274,
            0,39,6865,274,0,39,6864,274,0,6888,
            274,0,6865,48,0,6864,48,0,43,6886,
            0,43,37,0,4005,127,0,4005,126,0,
            6856,1,0,6855,1,0,3359,270,0,32,
            424,0,29,423,0,1,5715,0,1,5364,
            0,1,5421,0,1,5487,0,1,5510,0,
            1,5540,0,1,5564,0,1,5587,0,1,
            3493,0,1042,1,0,1,2317,0,1,5395,
            0,1,6872,0,1,6871,0,1,6870,0,
            1,6869,0,1,6868,0,1,6867,0,1,
            6866,0,1,638,0,1,641,0,1,652,
            0,1,714,0,1,751,0,39,1,0,
            366,481,0,1,92,0,47,37,0,6888,
            1,0,6865,274,0,6864,274,0,537,3468,
            0,6888,1,262,0,39,1,262,0,262,
            452,0,6865,37,0,6864,37,0,6886,45,
            0,37,45,0,6865,36,0,6864,36,0,
            6865,2,37,0,6864,2,37,0,6860,441,
            0,6859,441,0,1,2380,0,1,646,0,
            262,451,0,366,95,0,35,73,0,2733,
            353,0,1,366,0,3867,312,0,537,6037,
            0,1,262,0,262,253,0,1,743,0,
            1,2001,0,262,252,0,6862,1,0,6858,
            1,0,1,262,3576,0,6859,262,0,3577,
            262,0,6862,419,0,6861,419,0,3622,262,
            0,10,12,0,8,10,12,0,3627,226,
            0,217,5150,0,3631,419,0,8,12,0
        };
    };
    public final static char baseAction[] = BaseAction.baseAction;
    @Override
    public final int baseAction(int index) { return baseAction[index]; }
    public final static char lhs[] = baseAction;
    @Override
    public final int lhs(int index) { return lhs[index]; };

    public interface TermCheck {
        public final static byte termCheck[] = {0,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,0,0,56,57,58,59,
            0,61,62,63,0,65,66,67,0,69,
            0,1,2,73,74,75,76,77,78,79,
            80,81,82,83,84,85,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            86,87,56,57,58,59,0,61,62,63,
            4,65,66,67,94,69,92,93,0,73,
            74,75,76,77,78,79,80,81,82,83,
            84,85,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,0,0,56,57,
            58,59,0,61,62,63,4,65,66,67,
            0,69,0,1,2,73,74,75,76,77,
            78,79,80,81,82,83,84,85,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,34,35,36,37,38,39,40,41,
            42,43,44,45,46,47,48,49,50,51,
            52,53,86,87,56,57,58,59,0,61,
            62,63,95,65,66,67,0,69,0,1,
            2,0,74,75,76,77,78,79,80,81,
            82,83,84,85,0,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,34,35,
            36,37,38,39,40,41,42,43,44,45,
            46,47,48,49,50,51,52,53,0,68,
            56,57,58,59,0,61,62,63,0,65,
            66,67,0,69,0,3,0,0,74,75,
            76,77,78,79,80,81,82,83,84,85,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,86,87,56,57,58,59,
            0,61,62,63,0,65,66,67,94,69,
            86,87,86,87,74,75,76,77,78,79,
            80,81,82,83,84,85,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            0,0,56,57,58,59,0,61,62,63,
            0,65,66,67,94,69,92,93,0,0,
            74,75,76,77,78,79,80,81,82,83,
            84,85,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,86,87,56,57,
            58,59,0,61,62,63,95,65,66,67,
            94,69,92,93,86,87,74,75,76,77,
            78,79,80,81,82,83,84,85,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,34,35,36,37,38,39,40,41,
            42,43,44,45,46,47,48,49,50,51,
            52,53,0,0,56,57,58,59,0,61,
            62,63,0,65,66,67,0,69,0,1,
            2,5,74,75,76,77,78,79,80,81,
            82,83,84,85,0,1,2,3,4,5,
            6,7,8,9,10,11,12,13,14,15,
            16,17,18,19,20,21,22,23,24,25,
            26,27,28,29,30,31,32,33,34,35,
            36,37,38,39,40,41,42,43,44,45,
            46,47,48,49,50,51,52,53,86,87,
            56,57,58,59,0,61,62,63,4,65,
            66,67,0,69,101,102,4,95,74,75,
            76,77,78,79,80,81,82,83,84,85,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,34,35,36,37,38,39,
            40,41,42,43,44,45,46,47,48,49,
            50,51,52,53,0,0,56,57,58,59,
            0,61,62,63,0,65,66,67,0,69,
            0,1,2,0,74,75,76,77,78,79,
            80,81,82,83,84,85,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            34,35,36,37,38,39,40,41,42,43,
            44,45,46,47,48,49,50,51,52,53,
            86,87,56,57,58,59,0,61,62,63,
            0,65,66,67,4,69,92,93,0,0,
            74,75,76,77,78,79,80,81,82,83,
            84,85,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,34,35,36,37,
            38,39,40,41,42,43,44,45,46,47,
            48,49,50,51,52,53,68,0,56,57,
            58,59,0,61,62,63,9,65,66,67,
            0,69,96,0,1,2,74,75,76,77,
            78,79,80,81,82,83,84,85,0,1,
            2,3,4,5,6,7,8,40,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,34,35,36,37,38,39,55,41,
            42,43,44,45,46,47,48,49,50,51,
            52,53,0,0,56,57,58,59,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,0,1,2,0,4,0,40,0,
            1,2,3,4,5,6,7,8,0,1,
            2,53,0,55,56,57,58,5,0,61,
            62,63,0,1,2,3,4,0,6,71,
            8,73,5,38,7,38,0,0,1,2,
            3,4,5,6,7,8,88,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            71,0,114,115,116,0,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,91,
            0,99,100,0,0,40,98,0,0,1,
            2,3,4,5,6,7,8,0,53,0,
            55,56,57,58,0,64,61,62,63,68,
            0,0,0,3,0,5,71,7,73,9,
            6,22,23,24,25,26,27,28,29,30,
            31,32,33,88,0,1,2,3,4,55,
            6,54,8,0,34,35,36,37,60,0,
            40,64,3,70,0,1,2,60,70,114,
            115,116,0,9,54,0,1,2,3,4,
            60,6,0,8,64,64,89,90,68,68,
            70,71,72,73,101,102,103,104,105,106,
            107,108,109,110,111,112,86,87,0,89,
            90,91,92,93,94,95,96,97,98,99,
            100,101,102,103,104,105,106,107,108,109,
            110,111,112,69,120,60,64,117,118,119,
            120,0,34,35,3,0,5,0,7,4,
            9,0,1,2,3,4,9,6,0,8,
            0,0,1,2,3,4,5,0,7,0,
            10,4,5,91,7,34,35,36,37,0,
            98,40,3,22,23,24,25,26,27,28,
            29,30,31,32,33,54,0,1,2,54,
            4,60,0,1,2,64,4,0,6,68,
            8,70,71,72,73,0,69,59,0,1,
            2,60,71,54,6,64,8,86,87,68,
            89,90,91,92,93,94,95,96,97,98,
            99,100,101,102,103,104,105,106,107,108,
            109,110,111,112,0,1,2,55,117,118,
            119,120,0,1,2,3,4,5,6,7,
            8,9,10,11,12,13,14,15,16,17,
            18,19,20,21,22,23,24,25,26,27,
            28,29,30,31,32,33,0,0,1,2,
            3,4,40,6,0,8,0,1,2,55,
            4,5,0,7,0,53,0,55,56,57,
            58,0,0,61,62,63,4,65,7,114,
            115,116,0,1,2,73,22,23,24,25,
            26,27,28,29,30,31,32,33,0,53,
            88,0,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,22,23,24,25,26,27,28,
            29,30,31,32,33,0,70,0,0,1,
            2,40,4,0,6,91,8,4,66,67,
            0,0,98,91,53,54,55,56,57,58,
            98,0,61,62,63,22,65,101,102,103,
            104,105,106,107,108,109,110,111,112,0,
            1,2,3,4,5,6,7,8,38,88,
            0,1,2,3,4,5,6,7,8,9,
            10,11,12,13,14,15,16,17,18,19,
            20,21,22,23,24,25,26,27,28,29,
            30,31,32,33,0,1,2,0,4,5,
            40,7,71,0,1,2,9,4,5,60,
            7,0,0,53,3,55,56,57,58,0,
            113,61,62,63,0,65,0,114,115,116,
            0,1,2,73,22,23,24,25,26,27,
            28,29,30,31,32,33,0,0,88,0,
            1,2,3,4,5,6,7,8,9,10,
            11,12,13,14,15,16,17,18,19,20,
            21,22,23,24,25,26,27,28,29,30,
            31,32,33,0,1,2,60,4,5,40,
            7,0,1,2,0,4,0,6,4,8,
            54,0,53,7,55,56,57,58,0,0,
            61,62,63,0,65,118,22,0,1,2,
            96,4,73,22,23,24,25,26,27,28,
            29,30,31,32,33,89,90,88,0,1,
            2,3,4,5,6,7,8,9,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,55,0,1,2,68,64,40,6,
            71,8,0,1,2,0,0,0,6,0,
            0,53,5,55,56,57,58,0,9,61,
            62,63,0,65,0,3,0,1,2,23,
            24,73,22,23,24,25,26,27,28,29,
            30,31,32,33,0,0,88,0,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,32,
            33,72,60,0,60,68,64,40,5,0,
            68,0,66,67,0,86,87,3,54,54,
            53,96,55,56,57,58,99,100,61,62,
            63,0,65,22,23,24,25,26,27,28,
            29,30,31,32,33,0,1,2,3,4,
            5,0,7,89,90,88,0,1,2,3,
            4,5,6,7,8,9,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            0,1,2,0,4,64,40,0,0,0,
            0,0,99,100,0,60,9,3,9,53,
            9,55,56,57,58,64,0,61,62,63,
            0,65,22,23,24,25,26,27,28,29,
            30,31,32,33,0,1,2,40,4,40,
            6,40,8,0,88,0,1,2,3,4,
            5,6,7,8,9,10,11,12,13,14,
            15,16,17,18,19,20,21,22,23,24,
            25,26,27,28,29,30,31,32,33,0,
            1,2,0,4,5,40,7,0,9,55,
            0,1,2,95,7,0,0,54,53,0,
            55,56,57,58,9,9,61,62,63,0,
            65,0,1,2,3,4,5,6,7,8,
            0,10,11,12,13,14,15,16,17,18,
            19,20,21,88,0,1,2,3,4,0,
            6,0,8,9,3,34,35,36,37,38,
            39,72,41,42,43,44,45,46,47,48,
            49,50,51,52,0,1,2,72,72,5,
            59,0,0,62,40,3,97,66,67,0,
            1,2,3,4,5,6,7,8,0,10,
            11,12,13,14,15,16,17,18,19,20,
            21,0,1,2,3,4,97,6,0,8,
            9,70,113,34,35,36,37,38,39,55,
            41,42,43,44,45,46,47,48,49,50,
            51,52,0,1,2,0,0,0,59,0,
            3,40,54,64,9,66,67,0,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,0,
            34,35,3,34,35,0,1,2,0,1,
            2,34,35,36,37,38,39,55,41,42,
            43,44,45,46,47,48,49,50,51,52,
            0,1,2,68,96,0,59,72,0,0,
            0,0,7,0,3,0,69,9,9,9,
            73,0,1,2,3,4,5,6,7,8,
            55,10,11,12,13,14,15,16,17,18,
            19,20,21,0,1,2,0,0,0,6,
            40,0,0,0,3,34,35,36,37,38,
            39,0,41,42,43,44,45,46,47,48,
            49,50,51,52,0,1,2,68,68,64,
            59,73,73,0,71,0,3,66,67,0,
            1,2,3,4,5,6,7,8,55,10,
            11,12,13,14,15,16,17,18,19,20,
            21,60,0,0,0,54,64,64,70,0,
            0,9,9,34,35,36,37,38,39,55,
            41,42,43,44,45,46,47,48,49,50,
            51,52,0,1,2,0,0,0,59,3,
            89,90,0,0,9,66,67,0,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,60,
            60,69,97,0,70,72,3,0,0,0,
            3,34,35,36,37,38,39,55,41,42,
            43,44,45,46,47,48,49,50,51,52,
            97,64,0,1,2,0,59,0,73,0,
            0,0,70,3,71,0,69,0,1,2,
            3,4,5,6,7,8,9,10,11,12,
            13,14,15,16,17,18,19,20,21,60,
            0,1,2,0,0,0,3,0,5,6,
            7,34,35,36,37,38,39,55,41,42,
            43,44,45,46,47,48,49,50,51,52,
            60,0,1,2,0,70,59,34,35,36,
            37,74,39,68,0,0,69,0,3,0,
            3,113,0,9,9,55,0,54,0,54,
            0,54,0,60,0,3,97,64,10,66,
            67,68,68,70,22,23,24,25,26,27,
            28,29,30,31,32,33,55,0,54,86,
            87,0,89,90,91,92,93,94,95,96,
            0,10,99,100,101,60,103,104,105,106,
            107,108,109,110,111,112,72,72,54,61,
            117,0,1,2,3,4,5,6,7,8,
            9,10,11,12,13,14,15,16,17,18,
            19,20,21,0,53,0,55,0,0,4,
            0,0,4,3,54,34,35,36,37,38,
            39,10,41,42,43,44,45,46,47,48,
            49,50,51,52,0,1,2,3,4,5,
            6,7,8,0,10,11,12,13,14,15,
            16,17,18,19,20,21,0,54,0,54,
            113,54,54,0,53,9,55,64,34,35,
            36,37,38,39,0,41,42,43,44,45,
            46,47,48,49,50,51,52,0,0,0,
            0,0,89,90,3,0,9,0,55,118,
            66,67,0,1,2,3,4,5,6,7,
            8,0,10,11,12,13,14,15,16,17,
            18,19,20,21,0,0,68,0,72,55,
            0,0,0,0,71,0,34,35,36,37,
            38,39,54,41,42,43,44,45,46,47,
            48,49,50,51,52,0,0,68,3,71,
            73,59,0,1,2,3,4,5,6,7,
            8,0,10,11,12,13,14,15,16,17,
            18,19,20,21,54,54,54,54,0,54,
            0,0,0,0,64,71,34,35,36,37,
            38,39,75,41,42,43,44,45,46,47,
            48,49,50,51,52,0,121,0,3,89,
            90,0,60,0,1,2,3,4,5,6,
            7,8,0,10,11,12,13,14,15,16,
            17,18,19,20,21,54,0,0,0,0,
            3,3,3,0,0,64,0,34,35,36,
            37,38,39,70,41,42,43,44,45,46,
            47,48,49,50,51,52,0,0,0,0,
            89,90,59,0,1,2,3,4,5,6,
            7,8,71,10,11,12,13,14,15,16,
            17,18,19,20,21,0,0,0,54,0,
            0,0,0,0,0,0,70,34,35,36,
            37,38,39,70,41,42,43,44,45,46,
            47,48,49,50,51,52,0,0,0,0,
            0,0,59,0,1,2,3,4,5,6,
            7,8,0,10,11,12,13,14,15,16,
            17,18,19,20,21,0,0,0,0,0,
            0,0,0,0,0,0,71,34,35,36,
            37,38,39,71,41,42,43,44,45,46,
            47,48,49,50,51,52,0,0,0,0,
            0,0,59,0,1,2,3,4,5,6,
            7,8,0,10,11,12,13,14,15,16,
            17,18,19,20,21,0,0,0,0,0,
            0,0,0,0,0,70,70,34,35,36,
            37,38,39,70,41,42,43,44,45,46,
            47,48,49,50,51,52,0,1,2,3,
            4,5,6,7,8,0,10,11,12,13,
            14,15,16,17,18,19,20,21,0,0,
            0,0,0,0,0,0,0,0,0,0,
            34,35,36,37,38,39,0,41,42,43,
            44,45,46,47,48,49,50,51,52,0,
            1,2,3,4,5,6,7,8,0,10,
            11,12,13,14,15,16,17,18,19,20,
            21,0,0,0,0,0,0,0,0,0,
            0,0,0,34,35,36,37,38,39,0,
            41,42,43,44,45,46,47,48,49,50,
            51,52,0,1,2,3,4,5,6,7,
            8,0,10,11,12,13,14,15,16,17,
            18,19,20,21,0,0,0,0,0,0,
            0,0,0,0,0,0,34,35,36,37,
            38,39,0,41,42,43,44,45,46,47,
            48,49,50,51,52,0,1,2,3,4,
            5,6,7,8,0,10,11,12,13,14,
            15,16,17,18,19,20,21,0,0,0,
            0,0,0,0,0,0,9,0,0,34,
            35,36,37,38,39,0,41,42,43,44,
            45,46,47,48,49,50,51,52,0,1,
            2,0,4,0,0,0,0,0,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,0,0,0,0,0,0,0,72,
            0,0,0,0,0,0,0,0,0,1,
            2,53,4,0,56,57,58,0,10,11,
            12,13,14,15,16,17,18,19,20,21,
            22,23,24,25,26,27,28,29,30,31,
            32,33,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,1,2,
            0,53,0,0,56,57,58,10,11,12,
            13,14,15,16,17,18,19,20,21,22,
            23,24,25,26,27,28,29,30,31,32,
            33,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,1,2,0,
            53,0,0,56,57,58,10,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            0,0,0,0,1,2,3,4,5,6,
            7,8,9,0,0,0,0,3,0,53,
            0,0,56,57,58,22,23,24,25,26,
            27,28,29,30,31,32,33,0,0,1,
            2,3,4,40,6,0,8,9,3,0,
            36,37,0,0,9,0,0,54,0,0,
            0,0,0,60,0,1,2,3,4,5,
            6,7,8,9,60,72,0,0,0,0,
            0,0,0,0,0,0,22,23,24,25,
            26,27,28,29,30,31,32,33,60,0,
            0,0,0,0,40,60,0,0,0,64,
            72,0,0,68,0,0,0,72,0,0,
            0,0,0,0,60,0,0,0,0,0,
            0,117,0,119,0,0,72,11,12,13,
            14,15,16,17,18,19,20,21,22,23,
            24,25,26,27,28,29,30,31,32,33,
            0,1,2,3,4,5,0,7,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,22,23,24,25,26,27,28,29,
            30,31,32,33,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            60,0,0,0,64,0,0,0,68,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0,0,0,0,0,0,0,0,
            0,0,0
        };
    };
    public final static byte termCheck[] = TermCheck.termCheck;
    @Override
    public final int termCheck(int index) { return termCheck[index]; }

    public interface TermAction {
        public final static char termAction[] = {0,
            6850,6812,6791,6791,6791,6791,6791,6791,6791,6828,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            6816,1,1,1,1,1,1,1,1,1,
            1,1,1,1,120,1,1,1,1,1,
            132,1285,7057,2619,128,3527,1,1,366,6861,
            6850,6864,6865,6857,2797,3619,3083,3231,3082,3575,
            4714,3616,806,3581,4509,3579,10,6831,6831,6831,
            6831,6831,6831,6831,6831,6831,6831,6831,6831,6831,
            6831,6831,6831,6831,6831,6831,6831,6831,6831,6831,
            6831,6831,6831,6831,6831,6831,6831,6831,6831,6831,
            6831,6831,6831,6831,6831,6831,6831,6831,6831,6831,
            6831,6831,6831,6831,6831,6831,6831,6831,6831,6831,
            4346,4413,6831,6831,6831,6831,39,6831,6831,6831,
            6888,6831,6831,6831,1106,6831,3754,3723,431,6831,
            6831,6831,6831,6831,6831,6831,6831,6831,6831,6831,
            6831,6831,8,6834,6834,6834,6834,6834,6834,6834,
            6834,6834,6834,6834,6834,6834,6834,6834,6834,6834,
            6834,6834,6834,6834,6834,6834,6834,6834,6834,6834,
            6834,6834,6834,6834,6834,6834,6834,6834,6834,6834,
            6834,6834,6834,6834,6834,6834,6834,6834,6834,6834,
            6834,6834,6834,6834,6834,6834,124,134,6834,6834,
            6834,6834,6850,6834,6834,6834,815,6834,6834,6834,
            332,6834,6850,6595,6592,6834,6834,6834,6834,6834,
            6834,6834,6834,6834,6834,6834,6834,6834,6850,6812,
            6791,6791,6791,6791,6791,6791,6791,6819,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,6816,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,4346,4413,1,1,1,1,420,1285,
            7057,2619,1254,3527,1,1,6850,6861,48,6595,
            6592,189,2797,3619,3083,3231,3082,3575,4714,3616,
            806,3581,4509,3579,6850,6812,6791,6791,6791,6791,
            6791,6791,6791,6819,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,6816,1,1,1,1,1,
            1,1,1,1,1,1,1,1,123,1489,
            1,1,1,1,133,1285,7057,2619,6850,3527,
            1,1,6850,6861,122,5741,121,6850,2797,3619,
            3083,3231,3082,3575,4714,3616,806,3581,4509,3579,
            6850,6812,6791,6791,6791,6791,6791,6791,6791,6819,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            6816,1,1,1,1,1,1,1,1,1,
            1,1,1,1,4346,4413,1,1,1,1,
            152,1285,7057,2619,129,3527,1,1,1106,6861,
            4346,4413,4346,4413,2797,3619,3083,3231,3082,3575,
            4714,3616,806,3581,4509,3579,6850,6812,6791,6791,
            6791,6791,6791,6791,6791,6819,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,6816,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            140,135,1,1,1,1,153,1285,7057,2619,
            148,3527,1,1,3588,6861,3754,3723,144,6850,
            2797,3619,3083,3231,3082,3575,4714,3616,806,3581,
            4509,3579,6850,6812,6791,6791,6791,6791,6791,6791,
            6791,6819,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,6816,1,1,1,1,1,1,1,
            1,1,1,1,1,1,4346,4413,1,1,
            1,1,6850,1285,7057,2619,1254,3527,1,1,
            3588,6861,3825,3785,4346,4413,2797,3619,3083,3231,
            3082,3575,4714,3616,806,3581,4509,3579,6850,6812,
            6791,6791,6791,6791,6791,6791,6791,6819,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,6816,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,143,138,1,1,1,1,6850,1285,
            7057,2619,154,3527,1,1,6850,6861,433,6864,
            6865,2526,2797,3619,3083,3231,3082,3575,4714,3616,
            806,3581,4509,3579,6850,6812,6791,6791,6791,6791,
            6791,6791,6791,6819,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,6816,1,1,1,1,1,
            1,1,1,1,1,1,1,1,4346,4413,
            1,1,1,1,6850,1285,7057,2619,2245,3527,
            1,1,431,6861,3288,4210,424,3533,2797,3619,
            3083,3231,3082,3575,4714,3616,806,3581,4509,3579,
            6850,6812,6791,6791,6791,6791,6791,6791,6791,6819,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            6816,1,1,1,1,1,1,1,1,1,
            1,1,1,1,141,6850,1,1,1,1,
            6850,1285,7057,2619,149,3527,1,1,6850,6861,
            36,6747,6744,6850,2797,3619,3083,3231,3082,3575,
            4714,3616,806,3581,4509,3579,6850,6812,6791,6791,
            6791,6791,6791,6791,6791,6819,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,6816,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            4346,4413,1,1,1,1,136,1285,7057,2619,
            6850,3527,1,1,2092,6861,3825,3785,551,6850,
            2797,3619,3083,3231,3082,3575,4714,3616,806,3581,
            4509,3579,6850,3576,1,1,1,1,1,1,
            1,3577,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,6859,1,1,1,1,1,1,1,
            1,1,1,1,1,1,929,441,1,1,
            1,1,6850,1285,7057,2619,6758,3527,1,1,
            6850,6861,3393,6850,10573,10573,2797,3619,3083,3231,
            3082,3575,4714,3616,806,3581,4509,3579,39,6414,
            6411,3866,1042,5510,5395,5540,2317,6761,1187,7148,
            7146,7155,7154,7150,7151,7149,7152,7153,7156,7147,
            7143,7222,7223,7137,7144,7140,7116,7142,7141,7138,
            7139,7117,5487,5421,5587,5564,6869,5364,6886,641,
            751,6871,652,5715,714,6872,6870,638,6866,6867,
            6868,7284,6850,6850,1320,7285,7286,1439,6850,6725,
            6725,262,6721,262,262,262,262,6729,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,322,6509,6509,6850,317,6850,262,6850,
            6502,6498,2380,6652,6782,646,6782,2317,332,6864,
            6865,1,114,6718,1,1,1,5325,110,2201,
            7298,2340,1,6502,6498,2380,6652,6850,646,262,
            2317,452,1951,2731,1904,3030,256,344,6502,6498,
            2380,6652,6782,646,6782,2317,7386,7148,7146,7155,
            7154,7150,7151,7149,7152,7153,7156,7147,7143,7222,
            7223,7137,7144,7140,7116,7142,7141,7138,7139,7117,
            3033,6850,7321,7322,7323,6850,6725,6725,262,6721,
            262,262,262,262,6770,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,5633,
            6850,5301,4301,138,37,262,5656,125,402,6502,
            6498,4180,6652,1,646,1,2317,494,1,257,
            6718,1,1,1,6850,6171,2201,7298,2340,3566,
            33,6850,6850,6453,6850,6453,262,6453,451,6453,
            1481,7143,7222,7223,7137,7144,7140,7116,7142,7141,
            7138,7139,7117,7386,366,6414,6411,2380,1042,6886,
            646,4032,2317,6850,6453,6453,6453,6453,2053,6850,
            6453,6435,3359,2006,6850,6864,6865,6441,1293,7321,
            7322,7323,6850,6862,6453,1,6502,6498,4180,6652,
            6453,646,113,2317,6453,3626,3978,3905,6453,3566,
            6453,6453,6453,6453,3288,4210,1959,1912,1865,1818,
            1771,1724,1677,1630,1583,1536,6453,6453,117,6453,
            6453,6453,6453,6453,6453,6453,6453,6453,6453,6453,
            6453,6453,6453,6453,6453,6453,6453,6453,6453,6453,
            6453,6453,6453,6861,6410,2053,2989,6453,6453,6453,
            6453,6850,4631,4604,6456,432,6456,6850,6456,423,
            6456,1,6502,6498,2380,6652,6862,646,594,2317,
            336,37,6865,6865,6865,6865,6865,39,6865,6850,
            7185,6888,366,5633,366,6456,6456,6456,6456,91,
            5656,6456,6447,6865,6865,6865,6865,6865,6865,6865,
            6865,6865,6865,6865,6865,6456,6850,6414,6411,1238,
            6888,6456,6850,6414,6411,6456,1042,6850,6459,6456,
            2317,6456,6456,6456,6456,475,6861,3570,38,6432,
            6429,6865,3033,2856,6426,6865,2317,6456,6456,6865,
            6456,6456,6456,6456,6456,6456,6456,6456,6456,6456,
            6456,6456,6456,6456,6456,6456,6456,6456,6456,6456,
            6456,6456,6456,6456,43,6601,6601,2644,6456,6456,
            6456,6456,6850,6791,6791,262,6791,262,262,262,
            262,6794,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,9189,
            1,1,1,1,1,1,6850,1,6502,6498,
            6764,6652,262,6767,112,6655,480,1,1,6598,
            1,6438,111,6438,258,1,158,6788,1,1,
            1,130,6850,2590,7094,2619,2670,3527,3641,7321,
            7322,7323,6850,6864,6865,253,7143,7222,7223,7137,
            7144,7140,7116,7142,7141,7138,7139,7117,6850,2537,
            7386,6850,6791,6791,262,6791,262,262,262,262,
            262,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,1,9189,1,
            1,1,1,1,1,6850,2812,6850,6850,6414,
            6411,262,1042,39,646,5633,2317,6888,5610,1047,
            1,6850,5656,5633,1,3477,6788,1,1,1,
            5656,6850,2590,7094,2619,982,3527,3330,4999,2746,
            2680,2614,2548,2482,2416,2350,2284,2218,2152,380,
            6414,6411,4180,1042,366,646,366,2317,3526,7386,
            6850,6791,6791,262,6791,262,262,262,262,6803,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,1,9189,1,1,
            1,1,1,1,481,39,39,6850,6888,6700,
            262,6700,2095,92,1,1,6854,1,6703,2053,
            6703,1,259,1,5164,6788,1,1,1,6850,
            3621,2590,7094,2619,137,3527,493,7321,7322,7323,
            326,6864,6865,252,7143,7222,7223,7137,7144,7140,
            7116,7142,7141,7138,7139,7117,145,6850,7386,6850,
            6791,6791,262,6791,262,262,262,262,6794,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,1,9189,1,1,1,
            1,1,1,95,39,39,6444,6888,6773,262,
            6773,6850,6414,6411,39,1042,131,646,6888,2317,
            4113,260,1,3641,6788,1,1,1,397,6850,
            2590,7094,2619,6850,3527,6853,2667,430,6506,6506,
            3393,317,253,7143,7222,7223,7137,7144,7140,7116,
            7142,7141,7138,7139,7117,4086,4059,7386,6850,6791,
            6791,262,6791,262,262,262,262,6794,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,1,9189,1,1,1,1,
            1,1,317,6850,6864,6865,3371,3038,262,646,
            2878,2317,6850,6864,6865,156,371,116,1481,6850,
            571,1,5325,6788,1,1,1,319,6856,2590,
            7094,2619,1,3527,383,3859,6850,6595,6592,7222,
            7223,253,7143,7222,7223,7137,7144,7140,7116,7142,
            7141,7138,7139,7117,147,6850,7386,6850,6791,6791,
            262,6791,262,262,262,262,262,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,1,9189,1,1,1,1,1,
            1,6855,2053,115,2053,7168,576,262,5325,6850,
            576,572,5610,1047,270,4346,4413,6616,4113,4731,
            1,3431,6788,1,1,1,5301,4301,2590,7094,
            2619,6850,3527,7143,7222,7223,7137,7144,7140,7116,
            7142,7141,7138,7139,7117,380,39,39,3859,6888,
            366,6850,366,4086,4059,7386,6850,6791,6791,262,
            6791,262,262,262,262,262,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,1,9189,1,1,1,1,1,1,
            6850,6414,6411,6850,6888,3062,262,6850,155,1,
            573,1,5301,4301,6850,2053,6860,4458,6860,1,
            223,6788,1,1,1,3085,6850,2590,7094,2619,
            6850,3527,7143,7222,7223,7137,7144,7140,7116,7142,
            7141,7138,7139,7117,6850,6414,6411,6859,1042,6859,
            6459,223,2317,6850,7386,6850,6791,6791,262,6791,
            262,262,262,262,262,1,1,1,1,1,
            1,1,1,1,1,1,1,1,1,1,
            1,1,9189,1,1,1,1,1,1,1,
            6697,6697,6850,6709,366,262,366,150,398,2710,
            6850,10327,10324,3533,3675,1,6850,4978,1,410,
            6788,1,1,1,193,6856,2590,7094,2619,393,
            3527,6850,1,1,1,1,1,1,1,1,
            6850,1,1,1,1,1,1,1,1,1,
            1,1,1,7386,1,6502,6498,6764,6652,6850,
            6767,346,6655,6860,972,1,1,1,1,1,
            1,398,1,1,1,1,1,1,1,1,
            1,1,1,1,37,6706,6706,193,6855,366,
            1,6850,6850,7448,6859,4729,398,1,1,1,
            6502,6498,3493,1042,5510,5395,5540,2317,6850,6462,
            6489,6495,6468,6471,6483,6480,6486,6477,6474,6465,
            6492,1,6502,6498,2380,6652,7242,646,157,2317,
            344,1144,3621,5487,5421,5587,5564,6869,5364,6886,
            641,751,6871,652,5715,714,6872,6870,638,6866,
            6867,6868,37,6706,6706,6850,119,6850,1439,118,
            4779,344,5102,552,6856,39,39,39,6414,6411,
            3866,1042,5510,5395,5540,2317,6844,1085,7148,7146,
            7155,7154,7150,7151,7149,7152,7153,7156,7147,6850,
            4631,4604,4909,4631,4604,6850,6735,6732,6850,10327,
            10324,5487,5421,5587,5564,6869,5364,1719,641,751,
            6871,652,5715,714,6872,6870,638,6866,6867,6868,
            325,892,892,6252,3431,151,1439,6855,6850,6850,
            6850,6850,3675,6850,3867,6850,6825,6858,6858,6860,
            6857,173,6414,6411,3866,1042,5510,5395,5540,2317,
            6886,1085,7148,7146,7155,7154,7150,7151,7149,7152,
            7153,7156,7147,37,6706,6706,6850,6850,405,6706,
            6859,382,6850,6850,1798,5487,5421,5587,5564,6869,
            5364,146,641,751,6871,652,5715,714,6872,6870,
            638,6866,6867,6868,45,6741,6741,1058,5702,7398,
            1439,6857,6857,6850,7287,1,3869,39,39,1,
            6502,6498,3493,1042,5510,5395,5540,2317,1672,6462,
            6489,6495,6468,6471,6483,6480,6486,6477,6474,6465,
            6492,2053,1,1,403,4113,7327,7341,1342,100,
            99,6806,398,5487,5421,5587,5564,6869,5364,6738,
            641,751,6871,652,5715,714,6872,6870,638,6866,
            6867,6868,6850,6754,6750,1,103,6850,1439,4222,
            4086,4059,327,464,6809,39,39,39,6414,6411,
            3866,1042,5510,5395,5540,2317,6822,1085,7148,7146,
            7155,7154,7150,7151,7149,7152,7153,7156,7147,5061,
            2991,6861,7244,6850,1389,398,2733,312,583,355,
            6785,5487,5421,5587,5564,6869,5364,6886,641,751,
            6871,652,5715,714,6872,6870,638,6866,6867,6868,
            398,6022,6850,6735,6732,456,1439,1,6857,1,
            353,6850,3090,6779,2080,325,6825,39,6414,6411,
            3866,1042,5510,5395,5540,2317,6822,1085,7148,7146,
            7155,7154,7150,7151,7149,7152,7153,7156,7147,2053,
            6850,11329,8950,1,462,29,1063,476,7349,7355,
            7353,5487,5421,5587,5564,6869,5364,6886,641,751,
            6871,652,5715,714,6872,6870,638,6866,6867,6868,
            2053,37,6706,6706,490,3189,1439,7347,7348,7378,
            7379,2921,7356,9929,1,1,6825,6850,3859,6850,
            3560,1,574,6856,6610,6886,6850,7358,336,6417,
            6850,6420,6850,728,423,4223,3586,7359,7185,1940,
            1943,7380,2394,7357,7143,7222,7223,7137,7144,7140,
            7116,7142,7141,7138,7139,7117,6886,582,6423,7369,
            7368,1,7374,7375,7381,7372,7373,7352,7354,7376,
            6850,6797,7350,7351,7377,2053,7362,7363,7364,7360,
            7361,7370,7371,7366,7365,7367,6855,6613,6450,2399,
            7382,39,6414,6411,3866,1042,5510,5395,5540,2317,
            6854,1085,7148,7146,7155,7154,7150,7151,7149,7152,
            7153,7156,7147,127,6800,48,3565,6850,48,6865,
            6850,1,6864,4916,1238,5487,5421,5587,5564,6869,
            5364,6797,641,751,6871,652,5715,714,6872,6870,
            638,6866,6867,6868,1,6502,6498,6649,6652,6637,
            6658,6640,6655,47,6462,6489,6495,6468,6471,6483,
            6480,6486,6477,6474,6465,6492,1,4032,485,6865,
            3621,3477,6864,484,6800,590,3565,6604,6634,6631,
            6646,6643,6670,6628,6850,6685,6694,6664,6688,6625,
            6691,6661,6667,6682,6679,6676,6673,8,29,343,
            6850,6850,3978,3905,6288,217,6847,6850,1431,6853,
            6697,6697,39,6414,6411,3866,1042,5510,5395,5540,
            2317,6850,1085,7148,7146,7155,7154,7150,7151,7149,
            7152,7153,7156,7147,6850,6850,2274,226,590,3479,
            126,431,73,6850,2142,6850,5487,5421,5587,5564,
            6869,5364,1238,641,751,6871,652,5715,714,6872,
            6870,638,6866,6867,6868,6850,6850,2182,6290,460,
            6847,1439,39,6414,6411,3866,1042,5510,5395,5540,
            2317,6850,1085,7148,7146,7155,7154,7150,7151,7149,
            7152,7153,7156,7147,4032,1238,6776,2908,6850,3075,
            6850,6850,6850,35,6607,3132,5487,5421,5587,5564,
            6869,5364,6838,641,751,6871,652,5715,714,6872,
            6870,638,6866,6867,6868,6850,6841,6850,4842,3978,
            3905,6850,1517,39,6414,6411,3493,1042,5510,5395,
            5540,2317,6850,1085,7148,7146,7155,7154,7150,7151,
            7149,7152,7153,7156,7147,4113,544,6850,6850,6850,
            6292,808,5095,542,2,4153,6850,5487,5421,5587,
            5564,6869,5364,2802,641,751,6871,652,5715,714,
            6872,6870,638,6866,6867,6868,6850,6850,6850,6850,
            4086,4059,1439,39,6414,6411,3493,1042,5510,5395,
            5540,2317,4778,1085,7148,7146,7155,7154,7150,7151,
            7149,7152,7153,7156,7147,6850,6850,6850,37,6850,
            6850,6850,6850,6850,6850,6850,5740,5487,5421,5587,
            5564,6869,5364,6023,641,751,6871,652,5715,714,
            6872,6870,638,6866,6867,6868,6850,6850,6850,6850,
            6850,6850,1439,39,6414,6411,3866,1042,5510,5395,
            5540,2317,6850,1085,7148,7146,7155,7154,7150,7151,
            7149,7152,7153,7156,7147,6850,6850,6850,6850,6850,
            6850,6850,6850,546,6850,6850,4840,5487,5421,5587,
            5564,6869,5364,4902,641,751,6871,652,5715,714,
            6872,6870,638,6866,6867,6868,6850,6850,6850,6850,
            6850,6850,1439,39,6414,6411,6242,1042,5510,5395,
            5540,2317,6850,1085,7148,7146,7155,7154,7150,7151,
            7149,7152,7153,7156,7147,6850,6850,6850,6850,6850,
            6850,6850,6850,6850,6850,2802,2944,5487,5421,5587,
            5564,6869,5364,904,641,751,6871,652,5715,714,
            6872,6870,638,6866,6867,6868,39,6414,6411,3866,
            1042,5510,5395,5540,2317,6850,1085,7148,7146,7155,
            7154,7150,7151,7149,7152,7153,7156,7147,6850,6850,
            6850,6850,6850,6850,6850,6850,6850,6850,6850,6850,
            5487,5421,5587,5564,6869,5364,6850,641,751,6871,
            652,5715,714,6872,6870,638,6866,6867,6868,39,
            6414,6411,3493,1042,5510,5395,5540,2317,6850,1085,
            7148,7146,7155,7154,7150,7151,7149,7152,7153,7156,
            7147,6850,6850,6850,6850,6850,6850,6850,6850,6850,
            6850,6850,6850,5487,5421,5587,5564,6869,5364,6850,
            641,751,6871,652,5715,714,6872,6870,638,6866,
            6867,6868,39,6414,6411,3493,1042,5510,5395,5540,
            2317,6850,1085,7148,7146,7155,7154,7150,7151,7149,
            7152,7153,7156,7147,6850,6850,6850,6850,6850,6850,
            6850,6850,6850,6850,6850,6850,5487,5421,5587,5564,
            6869,5364,6850,641,751,6871,652,5715,714,6872,
            6870,638,6866,6867,6868,39,6414,6411,3866,1042,
            5510,5395,5540,2317,6850,1085,7148,7146,7155,7154,
            7150,7151,7149,7152,7153,7156,7147,1,6850,6850,
            6850,6850,6850,6850,6850,6850,195,6850,6850,5487,
            5421,5587,5564,6869,5364,6850,641,751,6871,652,
            5715,714,6872,6870,638,6866,6867,6868,6850,6414,
            6411,6850,6888,6850,6850,6850,6850,6850,759,7148,
            7146,7155,7154,7150,7151,7149,7152,7153,7156,7147,
            7143,7222,7223,7137,7144,7140,7116,7142,7141,7138,
            7139,7117,6850,6850,6850,6850,6850,6850,6850,195,
            6850,6850,6850,6850,6850,6850,6850,6850,274,6585,
            6581,7284,6589,6850,1320,7285,7286,6850,759,6572,
            6578,6551,6554,6566,6563,6569,6560,6557,6548,6575,
            6527,6521,6518,6545,6524,6536,6515,6530,6533,6542,
            6539,6512,6850,6850,6850,6850,6850,6850,6850,6850,
            6850,6850,6850,6850,6850,6850,6850,6850,6864,6865,
            6850,7284,6850,6850,1320,7285,7286,1336,7148,7146,
            7155,7154,7150,7151,7149,7152,7153,7156,7147,7143,
            7222,7223,7137,7144,7140,7116,7142,7141,7138,7139,
            7117,6850,6850,6850,6850,6850,6850,6850,6850,6850,
            6850,6850,6850,6850,6850,6850,274,6715,6712,6850,
            7284,6850,6850,1320,7285,7286,1336,6572,6578,6551,
            6554,6566,6563,6569,6560,6557,6548,6575,6527,6521,
            6518,6545,6524,6536,6515,6530,6533,6542,6539,6512,
            6850,6850,6850,29,423,423,6622,423,6622,423,
            6622,423,6622,6850,75,6850,6850,3458,6850,7284,
            6850,6850,1320,7285,7286,423,423,423,423,423,
            423,423,423,423,423,423,423,6850,1,6502,
            6498,4180,6652,6622,646,1,2317,6610,3859,6850,
            6912,6913,6850,6850,376,6850,6850,6417,6850,6850,
            6850,6850,6850,6622,32,424,424,6619,424,6619,
            424,6619,424,6619,3941,6622,6850,6850,6850,6850,
            6850,6850,6850,6850,6850,6850,424,424,424,424,
            424,424,424,424,424,424,424,424,2053,6850,
            6850,6850,6850,6850,6619,2053,6850,6850,6850,376,
            6613,6850,6850,376,6850,6850,6850,376,6850,6850,
            6850,6850,6850,6850,6619,6850,570,6850,6850,6850,
            6850,746,6850,869,6850,6850,6619,7148,7146,7155,
            7154,7150,7151,7149,7152,7153,7156,7147,7143,7222,
            7223,7137,7144,7140,7116,7142,7141,7138,7139,7117,
            37,6864,6864,6864,6864,6864,6850,6864,6850,6850,
            6850,6850,6850,6850,6850,6850,6850,6850,6850,6850,
            6850,6850,6864,6864,6864,6864,6864,6864,6864,6864,
            6864,6864,6864,6864,6850,6850,6850,6850,6850,6850,
            6850,6850,6850,6850,6850,6850,6850,6850,6850,6850,
            6850,6850,6850,6850,6850,6850,6850,6850,6850,6850,
            6864,6850,6850,6850,6864,6850,6850,6850,6864
        };
    };
    public final static char termAction[] = TermAction.termAction;
    @Override
    public final int termAction(int index) { return termAction[index]; }

    public interface Asb {
        public final static char asb[] = {0,
            904,7,343,1,945,837,837,837,837,510,
            945,522,522,442,522,105,343,107,344,344,
            344,344,344,344,344,344,344,524,530,535,
            532,539,537,544,542,546,545,547,198,548,
            343,327,147,147,147,147,382,742,120,120,
            519,147,431,53,522,522,120,382,53,947,
            146,1124,512,1005,327,522,524,672,672,742,
            343,344,344,344,344,344,344,344,344,344,
            344,344,344,344,344,344,344,344,344,344,
            343,343,343,343,343,343,343,343,343,343,
            343,343,344,53,53,44,327,1070,1070,1070,
            1070,1126,53,120,120,508,994,1005,117,1005,
            112,1005,179,1005,989,510,382,431,431,120,
            837,431,146,343,380,1123,53,379,381,379,
            53,431,532,532,530,530,530,537,537,537,
            537,535,535,542,539,539,545,544,546,1082,
            547,508,391,865,855,854,684,1012,1012,510,
            107,945,945,945,945,382,382,1070,148,504,
            343,1047,1045,1052,1050,1054,1053,1055,1056,1069,
            1070,519,382,247,250,114,674,115,510,382,
            382,1126,1070,344,147,528,9,53,512,382,
            382,381,1124,343,44,431,563,53,867,869,
            382,1124,343,343,343,343,945,945,481,492,
            492,492,492,476,510,737,344,344,344,344,
            344,344,344,344,344,343,343,343,343,343,
            343,343,343,343,343,343,343,344,327,248,
            517,515,250,382,788,62,786,1126,117,385,
            382,1126,382,53,528,508,1123,512,382,380,
            53,859,847,858,869,1126,380,53,53,53,
            53,742,742,382,344,1045,1045,1045,1050,1047,
            1047,1053,1052,1054,1082,1055,248,515,388,382,
            250,1082,115,837,1128,626,1072,250,788,787,
            788,788,1126,385,385,382,382,528,529,528,
            343,9,631,524,512,572,343,856,856,185,
            185,382,863,508,792,53,382,53,53,1126,
            679,343,515,515,1124,117,117,1070,837,379,
            582,1074,376,945,788,788,788,788,382,385,
            387,825,387,528,742,344,431,631,572,343,
            343,869,382,1124,53,867,847,572,695,382,
            515,514,380,633,117,588,266,380,788,788,
            376,568,344,1082,193,830,382,508,788,788,
            434,387,388,344,382,529,53,431,727,869,
            572,515,569,633,633,784,1084,239,945,115,
            625,266,380,788,117,510,1074,344,344,1123,
            376,839,294,435,382,388,727,53,727,388,
            633,633,587,239,784,843,510,1069,837,56,
            56,569,117,307,839,382,945,434,382,510,
            510,382,945,720,727,388,588,633,569,192,
            568,53,510,382,266,588,266,1068,1068,735,
            308,510,382,742,382,382,382,870,720,633,
            343,68,376,569,382,382,266,147,147,735,
            307,1082,344,1082,569,306,945,945,945,308,
            945,382,206,569,569,382,117,53,382,382,
            52,722,388,53,388,117,382,569,1069,299,
            945,299,308,1082,308,327,327,325,306,327,
            569,569,733,305,147,722,388,68,569,177,
            792,308,53,376,53,325,239,945,53,735,
            68,56,53,53,708,308,733,308,569,239,
            343,308,305,387,1068,117,117,979,343,306,
            742,569,53,567,67,379,308,53,569,567,
            567,308
        };
    };
    public final static char asb[] = Asb.asb;
    @Override
    public final int asb(int index) { return asb[index]; }

    public interface Asr {
        public final static byte asr[] = {0,
            9,71,118,72,40,68,120,0,98,91,
            34,35,99,100,86,87,54,89,90,92,
            93,94,95,96,101,102,71,97,70,103,
            104,105,106,107,108,109,110,111,112,118,
            73,40,120,64,1,2,7,5,4,3,
            60,68,72,9,0,64,70,68,1,2,
            0,4,9,71,69,0,73,59,36,37,
            7,5,34,35,39,45,3,4,50,51,
            52,38,48,43,47,12,21,11,17,15,
            16,18,19,14,13,20,10,42,46,44,
            41,49,69,9,8,6,1,2,67,66,
            0,55,4,71,1,2,69,9,0,41,
            66,42,43,67,8,44,45,46,47,59,
            48,49,50,51,52,38,36,37,7,5,
            34,35,6,39,64,3,4,10,1,2,
            56,57,58,12,21,11,17,15,16,18,
            19,14,13,20,25,31,32,27,30,29,
            22,26,23,24,28,33,53,0,4,9,
            69,1,2,0,74,64,71,97,72,69,
            60,3,9,68,40,70,0,64,71,97,
            68,118,72,73,120,11,12,41,66,13,
            42,43,14,15,16,67,44,17,18,45,
            46,47,59,48,49,10,19,20,21,50,
            51,52,38,36,37,34,35,39,9,40,
            6,8,1,2,4,3,7,5,0,88,
            61,8,114,115,116,63,9,3,7,5,
            6,71,73,40,62,25,11,12,53,23,
            13,56,26,27,14,28,29,15,16,30,
            31,17,18,32,57,55,33,10,58,19,
            20,24,21,1,2,4,22,0,88,114,
            115,116,55,71,113,121,73,62,74,63,
            61,65,76,78,84,82,75,80,81,83,
            85,69,77,79,40,9,25,53,23,56,
            26,27,28,29,30,31,32,57,33,58,
            22,24,59,66,67,10,42,46,44,41,
            49,12,21,11,17,15,16,18,19,14,
            13,20,50,51,52,38,48,43,47,36,
            37,34,35,39,45,7,5,3,4,8,
            6,1,2,0,1,2,68,73,9,0,
            66,67,10,42,46,44,41,49,12,21,
            11,17,15,16,18,19,14,13,20,50,
            51,52,38,48,43,47,6,8,4,3,
            36,37,7,5,34,35,39,45,1,2,
            118,9,0,22,1,2,4,114,115,116,
            0,67,66,34,35,99,100,94,95,6,
            39,70,54,106,107,103,104,105,111,110,
            112,87,86,108,109,92,93,89,90,96,
            101,36,37,91,117,10,56,53,57,58,
            12,21,11,17,15,16,18,19,14,13,
            20,25,31,32,27,30,29,22,26,23,
            24,28,33,64,68,3,60,7,5,1,
            2,4,0,59,23,24,8,6,1,2,
            4,74,69,119,117,36,37,60,3,98,
            91,5,99,100,34,35,87,86,54,89,
            90,92,93,7,94,95,96,64,97,72,
            120,70,103,104,105,106,107,108,109,110,
            111,112,71,118,101,102,73,68,40,9,
            0,23,59,24,9,64,97,70,68,72,
            0,9,71,69,74,0,69,53,23,13,
            56,26,14,28,29,15,16,30,31,17,
            18,32,57,33,58,19,22,20,24,21,
            12,11,25,9,3,7,5,40,63,65,
            88,27,62,55,61,8,1,2,4,10,
            6,0,65,25,11,12,53,23,13,56,
            26,88,27,14,28,29,15,16,30,61,
            31,17,18,32,57,33,10,58,19,63,
            22,20,24,21,9,3,7,5,73,40,
            62,8,6,55,1,2,4,0,72,9,
            87,86,0,11,12,13,14,15,16,17,
            18,19,20,21,25,23,26,27,28,29,
            30,31,32,33,22,24,40,9,72,8,
            1,2,60,3,7,5,6,4,0,23,
            24,74,3,71,40,69,59,9,64,97,
            68,72,70,0,113,0,54,64,89,90,
            0,9,72,11,12,41,66,13,42,43,
            14,15,16,67,8,44,17,18,45,46,
            47,59,48,49,10,19,20,21,50,51,
            52,1,2,3,36,37,7,5,34,35,
            6,39,4,38,0,4,54,9,71,69,
            0,25,11,12,53,23,13,56,26,27,
            14,28,29,15,16,30,31,17,18,32,
            57,33,10,58,19,22,20,24,21,1,
            2,4,97,0,9,68,73,70,0,71,
            9,60,3,70,68,40,54,0,9,69,
            68,0,9,69,70,0,7,5,8,6,
            4,1,2,3,60,64,70,68,9,72,
            97,0,6,8,3,60,5,7,97,25,
            11,12,53,23,13,56,26,27,14,28,
            29,15,16,30,31,17,18,32,57,33,
            10,58,19,22,20,24,21,1,2,4,
            72,9,0,11,12,41,66,13,42,43,
            14,15,16,67,8,44,17,18,45,46,
            47,59,48,49,10,19,20,21,50,51,
            52,38,1,2,36,37,7,5,34,35,
            6,39,4,62,3,0,66,67,36,37,
            34,35,39,45,50,51,52,38,48,43,
            47,12,21,11,17,15,16,18,19,14,
            13,20,10,42,46,44,41,49,7,5,
            3,60,8,6,4,1,2,0,10,56,
            53,57,58,12,21,11,17,15,16,18,
            19,14,13,20,74,71,97,118,73,69,
            120,8,31,32,33,22,24,1,2,30,
            29,28,27,26,6,4,23,25,119,98,
            117,91,36,37,34,35,99,100,9,60,
            3,5,72,40,87,86,54,89,90,92,
            93,7,94,95,96,101,102,103,104,105,
            106,107,108,109,110,111,112,70,68,64,
            0,40,9,3,8,6,7,5,4,1,
            2,71,0,53,23,13,56,26,14,28,
            29,15,16,30,31,17,18,32,57,33,
            10,58,19,22,20,24,21,12,11,25,
            9,3,7,40,63,61,65,88,27,62,
            54,4,5,8,6,1,2,55,0
        };
    };
    public final static byte asr[] = Asr.asr;
    @Override
    public final int asr(int index) { return asr[index]; }

    public interface Nasb {
        public final static char nasb[] = {0,
            184,12,69,12,12,12,12,12,12,73,
            12,12,12,124,12,216,157,28,69,69,
            245,69,69,69,69,69,69,12,12,12,
            12,12,12,12,12,12,12,12,69,12,
            69,257,292,292,292,292,28,149,173,173,
            25,5,104,236,12,12,173,249,236,69,
            64,18,12,12,257,12,12,41,41,149,
            157,69,69,69,69,69,69,69,69,69,
            69,69,69,69,69,69,69,69,69,69,
            69,69,69,69,69,69,69,69,69,69,
            69,157,69,236,236,161,1,12,12,12,
            12,77,236,31,31,180,275,276,204,276,
            80,276,83,276,269,10,28,104,104,31,
            12,104,292,57,216,47,236,215,28,215,
            236,104,12,12,12,12,12,12,12,12,
            12,12,12,12,12,12,12,12,12,12,
            12,180,99,160,20,20,12,12,12,10,
            28,12,12,12,12,54,11,12,238,161,
            152,12,12,12,12,12,12,12,12,12,
            12,297,28,12,173,53,73,22,73,28,
            11,12,12,69,292,173,13,236,12,11,
            28,220,18,69,295,104,12,236,193,173,
            28,18,157,157,157,157,12,12,275,276,
            276,276,276,261,10,12,69,69,69,69,
            69,69,69,69,69,69,69,69,69,69,
            69,69,69,69,69,69,157,69,31,182,
            182,182,301,54,51,51,12,223,204,173,
            223,17,54,236,62,297,47,12,249,54,
            236,12,166,12,196,16,54,236,236,236,
            236,149,149,28,69,12,12,12,12,12,
            12,12,12,12,12,12,12,173,142,28,
            208,12,118,12,12,128,278,301,51,51,
            173,173,17,173,250,11,54,173,110,12,
            157,297,221,12,12,173,69,12,12,20,
            20,28,165,180,196,236,54,236,236,17,
            236,69,182,112,18,204,139,12,12,73,
            173,175,168,12,173,173,75,75,54,250,
            93,12,12,62,149,69,104,221,112,69,
            69,173,11,18,236,193,210,173,12,54,
            173,112,216,173,204,286,173,223,173,95,
            212,208,69,12,134,12,28,180,75,75,
            106,93,142,69,250,110,236,104,173,196,
            112,112,208,252,173,12,286,279,12,138,
            128,196,216,95,121,114,168,69,69,86,
            212,12,73,60,223,142,97,236,173,142,
            286,252,203,175,12,12,73,12,12,39,
            39,208,121,141,12,223,12,130,223,73,
            73,11,12,173,97,142,286,173,208,91,
            12,236,73,223,196,286,173,12,12,173,
            187,114,11,149,11,223,223,234,112,252,
            57,67,168,208,223,119,196,292,292,136,
            199,12,69,12,208,12,12,12,12,200,
            12,250,206,208,208,250,146,236,11,11,
            236,173,142,236,173,204,119,208,12,89,
            12,12,200,12,200,308,308,226,12,308,
            208,208,12,173,292,97,142,173,208,12,
            292,200,236,168,236,291,173,12,236,136,
            67,39,236,236,173,200,12,200,208,168,
            157,200,89,142,12,146,146,166,69,12,
            231,208,236,144,66,215,200,236,208,144,
            12,200
        };
    };
    public final static char nasb[] = Nasb.nasb;
    @Override
    public final int nasb(int index) { return nasb[index]; }

    public interface Nasr {
        public final static char nasr[] = {0,
            3,13,10,9,137,136,113,135,134,4,
            2,0,5,194,0,154,2,75,0,79,
            0,42,1,0,5,212,0,2,44,0,
            4,10,9,2,13,127,5,0,121,0,
            4,2,9,10,157,0,75,156,155,0,
            122,0,44,2,3,0,5,28,0,210,
            0,161,0,192,0,80,148,42,10,9,
            2,13,4,0,123,0,154,75,0,166,
            205,0,166,200,0,75,53,0,129,0,
            201,0,167,0,173,0,144,0,13,2,
            9,10,4,94,0,4,115,209,0,159,
            0,51,0,186,4,185,0,140,117,0,
            42,174,0,5,60,213,0,170,0,4,
            115,182,0,208,0,175,0,1,140,0,
            5,80,0,176,0,42,66,0,5,105,
            0,13,2,9,10,4,5,36,0,31,
            100,101,5,0,31,101,100,77,4,2,
            9,10,5,0,5,10,9,2,77,4,
            98,53,0,5,191,0,5,50,42,36,
            196,0,53,4,98,27,5,0,80,36,
            50,82,5,42,0,5,36,39,0,101,
            100,53,77,68,4,10,9,2,0,2,
            131,0,2,67,0,36,5,27,198,0,
            5,195,0,60,5,31,0,137,214,136,
            113,135,134,0,4,10,9,13,3,1,
            0,132,5,50,93,0,5,60,36,0,
            113,69,13,110,111,112,190,0,2,4,
            113,110,111,112,13,69,0,39,4,2,
            9,10,5,172,0,5,50,93,95,0,
            197,5,60,0,101,100,53,4,68,0,
            5,50,93,115,48,4,0,5,60,116,
            0
        };
    };
    public final static char nasr[] = Nasr.nasr;
    @Override
    public final int nasr(int index) { return nasr[index]; }

    public interface TerminalIndex {
        public final static char terminalIndex[] = {0,
            113,114,2,31,10,13,9,79,115,100,
            48,52,60,68,74,75,86,87,102,105,
            107,104,54,106,47,64,66,70,73,76,
            83,89,98,11,12,7,8,112,14,120,
            55,61,67,84,88,90,94,97,99,109,
            110,111,53,19,93,63,91,101,95,1,
            77,122,103,20,46,58,78,44,121,33,
            30,118,119,96,108,49,50,56,57,59,
            69,71,72,85,92,17,18,65,21,22,
            6,23,24,25,26,27,32,4,15,16,
            28,29,34,35,36,37,38,39,40,41,
            42,43,51,80,81,82,5,117,3,123,
            62,116
        };
    };
    public final static char terminalIndex[] = TerminalIndex.terminalIndex;
    @Override
    public final int terminalIndex(int index) { return terminalIndex[index]; }

    public interface NonterminalIndex {
        public final static char nonterminalIndex[] = {0,
            130,135,136,0,0,134,0,0,237,243,
            133,0,143,0,132,0,0,142,148,0,
            0,149,158,159,160,161,188,151,0,162,
            126,141,163,164,165,131,166,167,128,168,
            0,129,138,137,170,169,171,185,0,0,
            195,172,0,173,0,0,0,0,0,152,
            174,175,176,0,177,180,0,155,194,0,
            0,0,212,0,0,209,213,0,214,127,
            145,179,0,0,0,0,0,0,183,0,
            0,0,0,125,186,0,0,210,216,217,
            218,0,220,157,0,146,0,0,215,197,
            198,199,201,227,228,182,204,0,0,219,
            0,0,0,0,248,0,251,0,252,0,
            147,187,189,190,191,192,196,200,203,0,
            206,0,207,0,222,225,0,0,0,246,
            0,247,0,0,139,140,144,0,0,154,
            156,0,178,0,193,0,0,0,202,0,
            205,211,0,223,224,0,0,229,232,0,
            234,236,0,240,241,242,245,0,0,249,
            124,0,150,153,0,181,0,184,0,0,
            208,221,226,0,0,230,231,233,235,0,
            238,239,244,250,253,254,0,0,0,0,
            0,0,0,0,0
        };
    };
    public final static char nonterminalIndex[] = NonterminalIndex.nonterminalIndex;
    @Override
    public final int nonterminalIndex(int index) { return nonterminalIndex[index]; }

    public interface ScopePrefix {
        public final static char scopePrefix[] = {
            172,324,602,621,317,332,553,569,580,591,
            372,280,294,311,344,55,305,392,430,180,
            610,496,20,33,64,84,93,98,103,143,
            208,339,350,20,467,157,286,300,524,40,
            157,382,20,629,40,230,259,1,14,27,
            74,89,119,27,361,365,448,489,518,545,
            549,639,643,647,110,7,110,410,426,439,
            460,479,537,129,129,245,439,560,576,587,
            598,220,507,69,69,169,235,238,69,254,
            275,238,238,69,369,486,493,169,69,662,
            123,355,414,454,472,69,355,401,190,117,
            452,651,658,651,658,78,420,150,117,117,
            264
        };
    };
    public final static char scopePrefix[] = ScopePrefix.scopePrefix;
    @Override
    public final int scopePrefix(int index) { return scopePrefix[index]; }

    public interface ScopeSuffix {
        public final static char scopeSuffix[] = {
            18,148,5,5,148,148,5,5,5,5,
            379,148,108,148,25,61,291,398,436,186,
            80,502,25,38,38,38,72,72,108,148,
            213,31,31,25,5,162,291,114,529,51,
            165,387,616,634,45,224,224,5,18,31,
            5,72,108,31,108,108,148,257,5,5,
            5,5,5,257,660,11,114,379,379,379,
            464,483,529,133,138,249,443,564,564,564,
            564,224,511,72,72,5,5,241,243,257,
            5,278,278,243,108,5,257,5,522,5,
            126,358,417,457,475,541,532,404,193,108,
            108,653,653,655,655,80,422,152,215,200,
            266
        };
    };
    public final static char scopeSuffix[] = ScopeSuffix.scopeSuffix;
    @Override
    public final int scopeSuffix(int index) { return scopeSuffix[index]; }

    public interface ScopeLhs {
        public final static char scopeLhs[] = {
            48,112,18,18,92,112,18,18,18,18,
            85,97,49,92,111,90,58,85,84,48,
            18,20,190,3,7,8,182,182,178,110,
            48,111,111,138,45,147,59,49,157,151,
            147,85,18,18,151,102,72,153,88,190,
            185,182,178,138,199,56,66,161,19,18,
            18,18,18,18,12,129,178,85,84,84,
            64,41,157,114,114,68,84,18,18,18,
            18,102,20,186,182,201,100,109,74,79,
            73,172,89,138,86,162,161,192,157,17,
            178,138,116,83,45,157,157,85,48,178,
            78,155,44,155,44,185,116,110,48,48,
            72
        };
    };
    public final static char scopeLhs[] = ScopeLhs.scopeLhs;
    @Override
    public final int scopeLhs(int index) { return scopeLhs[index]; }

    public interface ScopeLa {
        public final static byte scopeLa[] = {
            113,73,72,72,73,73,72,72,72,72,
            72,73,40,73,1,64,1,72,121,69,
            3,72,1,64,64,64,1,1,40,73,
            69,1,1,1,72,73,1,1,4,64,
            68,40,1,1,64,72,72,72,113,1,
            72,1,40,1,40,40,73,118,72,72,
            72,72,72,118,1,72,1,72,72,72,
            71,71,4,1,1,5,72,64,64,64,
            64,72,3,1,1,72,72,3,1,118,
            72,1,1,1,40,72,118,72,6,72,
            1,55,70,71,64,1,55,75,74,40,
            40,4,4,4,4,3,1,69,1,1,
            3
        };
    };
    public final static byte scopeLa[] = ScopeLa.scopeLa;
    @Override
    public final int scopeLa(int index) { return scopeLa[index]; }

    public interface ScopeStateSet {
        public final static char scopeStateSet[] = {
            85,183,284,284,107,183,284,284,284,284,
            95,109,85,107,183,107,87,95,95,85,
            284,284,118,214,260,260,54,54,82,183,
            85,183,183,185,140,370,87,85,178,50,
            370,95,284,284,50,169,63,26,95,118,
            30,54,82,185,22,87,33,79,284,284,
            284,284,284,284,264,6,82,95,95,95,
            148,343,178,183,183,124,95,284,284,284,
            284,169,284,30,54,24,169,171,63,165,
            63,60,68,185,95,57,79,181,178,284,
            82,185,1,95,140,178,178,95,85,82,
            11,121,189,121,189,30,1,183,85,85,
            63
        };
    };
    public final static char scopeStateSet[] = ScopeStateSet.scopeStateSet;
    @Override
    public final int scopeStateSet(int index) { return scopeStateSet[index]; }

    public interface ScopeRhs {
        public final static char scopeRhs[] = {0,
            338,3,59,0,126,0,337,3,113,0,
            126,180,0,127,188,74,0,224,0,197,
            166,126,10,0,136,0,166,126,10,0,
            135,0,271,127,54,124,0,20,0,309,
            127,54,55,0,20,53,0,33,132,0,
            20,53,0,0,309,127,54,55,215,0,
            20,186,0,271,127,54,132,0,189,126,
            0,141,0,227,3,308,0,308,0,2,
            0,126,0,271,127,54,131,0,189,126,
            237,0,189,126,22,237,0,189,126,332,
            22,0,128,197,166,126,0,128,0,197,
            166,126,0,134,128,0,172,0,328,127,
            172,0,127,172,0,230,128,0,166,327,
            235,0,136,0,0,0,0,135,0,0,
            0,0,326,127,164,236,0,127,0,236,
            0,129,0,0,127,0,325,127,164,270,
            0,127,0,0,44,127,0,0,150,3,
            0,127,296,295,127,74,294,172,0,295,
            127,74,294,172,0,223,0,224,0,294,
            172,0,96,0,0,223,0,224,0,211,
            96,0,0,223,0,224,0,295,127,294,
            172,0,223,0,211,0,0,223,0,240,
            127,3,0,126,0,0,0,0,0,240,
            127,3,222,0,231,3,0,220,127,0,
            216,0,146,0,175,166,126,0,10,0,
            0,0,0,226,60,0,125,0,240,127,
            3,195,0,195,0,2,0,0,126,0,
            0,0,0,0,211,3,0,209,0,252,
            127,164,38,27,0,189,126,61,63,0,
            204,128,0,128,189,126,292,63,0,189,
            126,292,63,0,189,126,70,123,61,0,
            252,127,164,262,61,0,252,127,164,262,
            239,61,0,289,290,127,164,123,322,56,
            0,289,290,127,164,322,56,0,189,126,
            288,56,0,197,189,126,288,235,0,189,
            126,288,235,0,166,126,0,93,136,0,
            286,127,149,0,286,127,172,0,158,84,
            0,317,161,319,320,3,81,0,126,179,
            0,319,320,3,81,0,128,0,126,179,
            0,158,3,75,204,80,0,126,128,0,
            204,80,0,108,2,131,126,128,0,238,
            3,75,0,211,182,0,33,169,0,182,
            0,183,33,169,0,238,3,85,0,204,
            153,238,3,83,0,62,179,0,238,3,
            83,0,126,179,62,179,0,318,127,164,
            0,158,0,226,77,0,30,179,0,158,
            102,185,0,30,177,0,148,64,167,3,
            0,167,3,0,20,161,126,0,158,102,
            162,0,30,169,0,227,3,0,226,60,
            283,0,158,60,0,203,3,314,67,126,
            0,126,0,0,0,0,314,67,126,0,
            2,145,126,0,0,0,0,203,3,45,
            0,147,0,125,55,166,126,0,31,147,
            0,93,136,31,147,0,228,189,126,0,
            146,31,147,0,203,3,49,0,158,3,
            49,0,158,3,64,203,54,41,0,203,
            54,41,0,20,2,131,126,0,158,3,
            64,203,54,44,0,203,54,44,0,158,
            3,64,203,54,46,0,203,54,46,0,
            158,3,64,203,54,42,0,203,54,42,
            0,227,3,125,197,166,126,10,0,125,
            197,166,126,10,0,136,2,0,126,0,
            227,3,124,276,166,126,10,0,276,166,
            126,10,0,135,2,0,126,0,227,3,
            135,0,227,3,140,0,158,60,140,0,
            278,0,31,0,31,139,0,165,0,134,
            0,158,3,0
        };
    };
    public final static char scopeRhs[] = ScopeRhs.scopeRhs;
    @Override
    public final int scopeRhs(int index) { return scopeRhs[index]; }

    public interface ScopeState {
        public final static char scopeState[] = {0,
            6062,6292,6290,6288,0,2597,2665,1716,2533,0,
            5212,5150,5088,5026,4964,4902,4840,4778,4714,4502,
            4440,4842,0,1763,0,2443,1995,1987,0,2274,
            2142,0,5212,5150,2869,2868,5088,5026,4964,4902,
            4840,4778,2797,4714,4502,4440,2406,2277,0,6205,
            3566,6135,0,2394,2080,0,2314,2089,0,653,
            6002,0,5962,653,5914,4675,6002,4591,4329,2512,
            2182,3812,5702,2380,4194,4180,4140,0,2446,1022,
            0,5928,6191,0,5928,6191,5815,6171,6111,5754,
            6097,6037,5737,6022,5212,5150,5088,5026,4964,4902,
            4840,4778,4714,4502,4440,0,5928,6191,5815,6171,
            6111,5754,6097,6037,5737,6022,0,5747,5349,0,
            2245,815,0,3812,5962,4511,5914,4675,4755,4194,
            4448,4232,4231,4451,6144,920,3368,2081,0,3330,
            3431,3588,3533,3825,3785,3675,3493,2878,929,2812,
            2746,2680,2614,2548,2482,2416,2350,2284,2218,2152,
            837,769,677,0,2260,1437,1341,651,4675,6144,
            4591,4180,4140,3279,3859,718,0,869,746,0,
            1047,0,5747,5349,5887,599,4274,0,6233,6181,
            6056,5836,5179,5117,5055,4993,4931,4910,5951,5853,
            4848,4787,5241,4531,3860,925,3855,4701,4694,4441,
            3488,672,0,1625,1578,6233,6181,6056,1384,1249,
            5836,885,5179,5117,5055,4993,4931,1907,4459,1860,
            1813,4910,1766,5951,5853,1719,1672,1481,1431,4848,
            4787,809,5241,4707,4531,3185,2917,3860,925,3855,
            765,4701,4694,4441,5887,646,4274,3488,672,2842,
            2776,1193,1042,904,4591,4329,2512,2182,3812,5962,
            5702,653,5914,4675,2380,4194,4180,6002,4140,2710,
            2644,869,746,2878,4153,929,3330,2812,2746,2680,
            2614,2548,2482,2416,2350,2284,2218,2152,3431,3588,
            3533,3825,3785,3675,4113,4086,4059,5679,3493,837,
            769,677,3288,3393,1106,1254,3754,3723,3641,4413,
            4346,4032,4005,3978,3905,5325,5301,4301,4631,4604,
            5656,5633,5610,5587,5564,5540,5510,5487,5421,5395,
            5364,5715,2944,3231,3189,3132,3090,3033,1389,1342,
            2991,1293,2095,2053,599,2006,1959,1912,1865,1818,
            1771,1724,1677,1630,1583,1536,1489,1439,1207,1058,
            995,1144,0
        };
    };
    public final static char scopeState[] = ScopeState.scopeState;
    @Override
    public final int scopeState(int index) { return scopeState[index]; }

    public interface InSymb {
        public final static char inSymb[] = {0,
            0,313,127,285,49,41,44,46,42,10,
            135,124,131,8,132,4,3,126,45,39,
            6,35,34,5,7,37,36,140,145,147,
            146,152,148,156,155,159,157,160,59,162,
            68,3,54,54,54,54,126,3,54,54,
            182,127,60,3,66,67,54,6,158,66,
            67,166,165,124,3,123,125,117,119,3,
            60,91,98,35,34,100,99,5,90,89,
            64,54,86,87,7,93,92,95,94,96,
            112,111,110,109,108,107,106,105,104,103,
            70,102,101,203,158,182,127,203,203,203,
            203,166,227,127,127,127,255,256,236,257,
            235,258,56,287,259,10,126,60,60,127,
            124,60,314,3,197,4,203,55,126,55,
            227,158,146,146,145,145,145,148,148,148,
            148,147,147,155,152,152,157,156,159,158,
            160,127,60,3,223,222,135,125,124,10,
            126,64,64,64,64,197,276,271,127,249,
            3,167,148,174,169,183,176,184,185,274,
            271,220,126,175,164,327,288,322,288,126,
            189,166,271,216,3,315,182,150,278,197,
            126,189,166,71,220,226,162,231,127,3,
            126,166,3,3,3,3,125,124,255,256,
            257,258,336,259,10,167,90,89,54,7,
            93,92,95,94,96,112,111,110,109,108,
            107,106,105,104,103,70,102,101,68,166,
            7,5,127,166,243,125,124,126,123,164,
            126,166,55,203,127,127,4,228,6,55,
            240,241,149,242,127,166,55,158,158,158,
            158,3,3,126,64,148,148,148,169,167,
            167,176,174,183,158,184,175,175,326,126,
            170,237,61,55,215,63,172,329,125,124,
            244,244,189,164,127,189,197,153,280,283,
            60,190,4,123,125,153,70,231,211,199,
            195,126,3,127,68,240,197,227,227,166,
            148,71,5,127,166,262,239,54,55,292,
            294,127,3,195,244,244,127,127,197,127,
            290,123,291,127,3,60,158,4,127,70,
            70,3,189,166,211,127,220,153,125,197,
            175,173,197,164,262,64,54,126,74,127,
            220,328,71,303,211,124,126,127,127,127,
            71,290,289,70,68,280,227,226,229,127,
            127,127,128,127,164,27,55,172,65,61,
            63,127,189,127,295,71,68,71,70,166,
            220,331,237,22,126,289,127,240,229,252,
            254,127,38,127,3,123,61,309,55,10,
            53,128,295,164,307,126,308,68,126,22,
            332,189,59,153,127,252,127,164,286,265,
            293,38,70,126,68,64,54,243,243,296,
            127,68,189,3,189,126,126,3,127,127,
            3,70,68,153,126,189,127,70,70,127,
            318,79,77,1,158,9,85,83,81,80,
            75,82,84,78,76,61,74,227,189,189,
            338,229,252,150,164,270,189,239,309,297,
            113,9,71,226,71,3,3,3,204,3,
            123,158,123,188,68,127,127,164,239,64,
            3,71,238,182,238,320,149,75,238,127,
            127,53,97,337,182,153,211,153,319,127,
            3,153,297,325,243,153,153,127,70,204,
            161,286,158,202,68,70,121,317,153,202,
            9,153
        };
    };
    public final static char inSymb[] = InSymb.inSymb;
    @Override
    public final int inSymb(int index) { return inSymb[index]; }

    public interface Name {
        public final static String name[] = {
            "",
            "[",
            "(",
            ".",
            ".*",
            "->",
            "->*",
            "++",
            "--",
            "&",
            "*",
            "+",
            "-",
            "~",
            "!",
            "/",
            "%",
            ">>",
            "<<",
            "<",
            ">",
            "<=",
            ">=",
            "==",
            "!=",
            "^",
            "|",
            "&&",
            "||",
            "?",
            ":",
            "::",
            "...",
            "=",
            "*=",
            "/=",
            "%=",
            "+=",
            "-=",
            ">>=",
            "<<=",
            "&=",
            "^=",
            "|=",
            ",",
            "$empty",
            "asm",
            "auto",
            "bool",
            "break",
            "case",
            "catch",
            "char",
            "class",
            "const",
            "const_cast",
            "continue",
            "default",
            "delete",
            "do",
            "double",
            "dynamic_cast",
            "else",
            "enum",
            "explicit",
            "export",
            "extern",
            "false",
            "float",
            "for",
            "friend",
            "goto",
            "if",
            "inline",
            "int",
            "long",
            "mutable",
            "namespace",
            "new",
            "operator",
            "private",
            "protected",
            "public",
            "register",
            "reinterpret_cast",
            "return",
            "short",
            "signed",
            "sizeof",
            "static",
            "static_cast",
            "struct",
            "switch",
            "template",
            "this",
            "throw",
            "try",
            "true",
            "typedef",
            "typeid",
            "typename",
            "union",
            "unsigned",
            "using",
            "virtual",
            "void",
            "volatile",
            "wchar_t",
            "while",
            "integer",
            "floating",
            "charconst",
            "stringlit",
            "identifier",
            "Completion",
            "EndOfCompletion",
            "Invalid",
            "RightBracket",
            "RightParen",
            "RightBrace",
            "SemiColon",
            "LeftBrace",
            "ERROR_TOKEN",
            "EOF_TOKEN",
            "no_cast_start",
            "]",
            ")",
            "}",
            ";",
            "{",
            "identifier_token",
            "expression",
            "id_expression",
            "qualified_or_unqualified_name",
            "unqualified_id_name",
            "identifier_name",
            "template_id_name",
            "nested_name_specifier",
            "class_or_namespace_name",
            "nested_name_specifier_with_tem" +
            "plate",
            "class_or_namespace_name_with_t" +
            "emplate",
            "class_name",
            "postfix_expression",
            "simple_type_specifier",
            "pseudo_destructor_name",
            "type_id",
            "type_name",
            "destructor_type_name",
            "unary_expression",
            "cast_expression",
            "new_type_id",
            "expression_list",
            "type_specifier_seq",
            "new_declarator",
            "new_pointer_operators",
            "ptr_operator",
            "new_array_expressions",
            "constant_expression",
            "pm_expression",
            "multiplicative_expression",
            "additive_expression",
            "shift_expression",
            "relational_expression",
            "equality_expression",
            "and_expression",
            "exclusive_or_expression",
            "inclusive_or_expression",
            "logical_and_expression",
            "logical_or_expression",
            "assignment_expression",
            "relational_expression_inTempla" +
            "te",
            "equality_expression_inTemplate",
            "and_expression_inTemplate",
            "exclusive_or_expression_inTemp" +
            "late",
            "inclusive_or_expression_inTemp" +
            "late",
            "logical_and_expression_inTempl" +
            "ate",
            "logical_or_expression_inTempla" +
            "te",
            "assignment_expression_inTempla" +
            "te",
            "expression_list_actual",
            "statement",
            "compound_statement",
            "statement_seq",
            "condition",
            "declarator",
            "for_init_statement",
            "function_definition",
            "declaration",
            "declaration_seq",
            "declaration_specifiers",
            "simple_declaration_specifiers",
            "class_declaration_specifiers",
            "elaborated_declaration_specifi" +
            "ers",
            "enum_declaration_specifiers",
            "type_name_declaration_specifie" +
            "rs",
            "no_type_declaration_specifier",
            "cv_qualifier",
            "no_type_declaration_specifiers",
            "class_specifier",
            "elaborated_type_specifier",
            "enum_specifier",
            "type_name_specifier",
            "class_keyword",
            "enumerator_list",
            "enumerator_definition",
            "namespace_name",
            "init_declarator_list",
            "init_declarator_complete",
            "complete_declarator",
            "initializer",
            "direct_declarator",
            "ptr_operator_seq",
            "function_declarator",
            "basic_direct_declarator",
            "array_direct_declarator",
            "array_modifier",
            "abstract_declarator",
            "direct_abstract_declarator",
            "basic_direct_abstract_declarat" +
            "or",
            "array_direct_abstract_declarat" +
            "or",
            "parameter_declaration_list",
            "parameter_declaration",
            "parameter_init_declarator",
            "parameter_initializer",
            "function_body",
            "handler_seq",
            "initializer_clause",
            "initializer_seq",
            "class_head",
            "access_specifier_keyword",
            "member_declaration",
            "member_declarator_list",
            "member_declaration_list",
            "member_declarator_complete",
            "constant_initializer",
            "bit_field_declarator",
            "base_specifier_list",
            "base_specifier",
            "conversion_function_id",
            "conversion_type_id",
            "conversion_declarator",
            "mem_initializer_list",
            "mem_initializer",
            "mem_initializer_name",
            "operator_id_name",
            "overloadable_operator",
            "template_parameter_list",
            "template_parameter",
            "template_argument_list",
            "template_argument",
            "type_name_specifier_inTemplate",
            "type_name_declaration_specifie" +
            "rs_inTemplate",
            "type_specifier_seq_inTemplate",
            "handler",
            "exception_declaration",
            "type_id_list"
        };
    };
    public final static String name[] = Name.name;
    public final String name(int index) { return name[index]; }

    public final static int
           ERROR_SYMBOL      = 62,
           SCOPE_UBOUND      = 120,
           SCOPE_SIZE        = 121,
           MAX_NAME_LENGTH   = 43;

    public final int getErrorSymbol() { return ERROR_SYMBOL; }
    public final int getScopeUbound() { return SCOPE_UBOUND; }
    public final int getScopeSize() { return SCOPE_SIZE; }
    public final int getMaxNameLength() { return MAX_NAME_LENGTH; }

    public final static int
           NUM_STATES        = 602,
           NT_OFFSET         = 122,
           LA_STATE_OFFSET   = 7448,
           MAX_LA            = 2147483647,
           NUM_RULES         = 598,
           NUM_NONTERMINALS  = 225,
           NUM_SYMBOLS       = 347,
           SEGMENT_SIZE      = 8192,
           START_STATE       = 4258,
           IDENTIFIER_SYMBOL = 0,
           EOFT_SYMBOL       = 120,
           EOLT_SYMBOL       = 120,
           ACCEPT_ACTION     = 6410,
           ERROR_ACTION      = 6850;

    public final static boolean BACKTRACK = true;

    public final int getNumStates() { return NUM_STATES; }
    public final int getNtOffset() { return NT_OFFSET; }
    public final int getLaStateOffset() { return LA_STATE_OFFSET; }
    public final int getMaxLa() { return MAX_LA; }
    public final int getNumRules() { return NUM_RULES; }
    public final int getNumNonterminals() { return NUM_NONTERMINALS; }
    public final int getNumSymbols() { return NUM_SYMBOLS; }
    public final int getSegmentSize() { return SEGMENT_SIZE; }
    public final int getStartState() { return START_STATE; }
    public final int getStartSymbol() { return lhs[0]; }
    public final int getIdentifierSymbol() { return IDENTIFIER_SYMBOL; }
    public final int getEoftSymbol() { return EOFT_SYMBOL; }
    public final int getEoltSymbol() { return EOLT_SYMBOL; }
    public final int getAcceptAction() { return ACCEPT_ACTION; }
    public final int getErrorAction() { return ERROR_ACTION; }
    public final boolean isValidForParser() { return isValidForParser; }
    public final boolean getBacktrack() { return BACKTRACK; }

    public final int originalState(int state) {
        return -baseCheck[state];
    }
    public final int asi(int state) {
        return asb[originalState(state)];
    }
    public final int nasi(int state) {
        return nasb[originalState(state)];
    }
    public final int inSymbol(int state) {
        return inSymb[originalState(state)];
    }

    public final int ntAction(int state, int sym) {
        return baseAction[state + sym];
    }

    public final int tAction(int state, int sym) {
        int i = baseAction[state],
            k = i + sym;
        return termAction[termCheck[k] == sym ? k : i];
    }
    public final int lookAhead(int la_state, int sym) {
        int k = la_state + sym;
        return termAction[termCheck[k] == sym ? k : la_state];
    }
}
